gregsadetsky / chrome-dont-add-custom-search-engines

Google Chrome extension that stops sites from adding custom search engines
https://chrome.google.com/webstore/detail/dont-add-custom-search-en/dnodlcololidkjgbpeoleabmkocdhacc
Other
118 stars 12 forks source link

AOL.com still slips through #14

Closed cxw42 closed 6 years ago

cxw42 commented 6 years ago

Updated with repro - Google Chrome Version 67.0.3396.87 (Official Build) (64-bit) on Win8.1 Enterprise x64

The root cause appears to be that AOL takes a really long time to load!

untitled

Steps:

Procyon-b commented 6 years ago

I have done many attempts, but I can't reproduce your problem on aol.com. If I disable the extension, the custom search engine is added, but not with the extension enabled (I see the added parameter in the url). What is the page you are using for your test?

Procyon-b commented 6 years ago

I have browsed with the new version enabled. No new search engine added so far.

Procyon-b commented 6 years ago

I'm sorry to bother you with this (no private message here), but I have a question about extensions, and how to reach their potential audience. I have used the last 3 days to program a new one (so fast it's a miracle for me. It's your fault, I was waiting for an update on aol. ;) ), and I don't know if developers could really be interested by it. Go to my profile, there is a link to a page listing my 2 public extensions. Can you check the second one, and tell me if it's worth bothering? (see the screenshots on the web store page)

gregsadetsky commented 6 years ago

@Procyon-b you can write me at gs AT gregsadetsky.com if you want to communicate privately (I don't mind discussing this in public, though)

here are my two cents:

I have a repo where I list a few of my custom search engines and a few sites that I frequently access (gmail, google calendar) using omnibox shortcuts here:

https://github.com/gregsadetsky/custom-search-engines (scroll down to the "Direct access shortcuts" section)

I will say, though, that having an extension dedicated to this might make sense for some people that aren't aware of this functionality. i.e., if somebody searches for a "bookmark alias" extension and finds yours, that's great..! :-)

So yeah... great work on both, congrats, and good luck! Keep writing extensions!! :-)

Cheers

Procyon-b commented 6 years ago

Thanks. I knew about custom search engines. It's the main access point to aliases in this extension. The extension installs its own search engine, like most of those extensions that tries to add aliases (but fail to add javascript aliases, or fail to run on specific pages). I had several problems with CSE. If you create an "alias" with a parameter (%s) the omnibox waits for it. You can't ignore it. I have aliases from my time with mozilla browser, that use either the %s parameter, or use the location of the current tab. With CSE I can't do that. And now I have implemented a possibility that I did not have in mind at the beginning of the project: Aliased folder. it can be used to launch multiple pages, just like when you instruct chrome to open a folder. But it can also be used to start a group of aliases (with parameters). And in that case, if the bookmarklets are written as above in my example, they can use the location of the triggering tab. The extension comes with an example that starts a query on google cache, wayback machine, bing and yahoo cache (with a trick). It's useful when a site is not answering.

Another problem, partially solved by "Don't add custom search engines", is the difficulty to organize your CSE. Currently I have 147 aliases, including duplicates (useful when I debug modifications). How could I manage that in CSE ? And last but not least, you can backup, copy, give away aliases. They are in your bookmarks file. You'll never lose them. None of the other extensions, nor CSE, offer an easy way to export your aliases.

Concerning Extension log, I have been using "Old extension log" for some time now. But it never worked well (it misses most of the uninstallations). Having looked at the code now, I understand why. Working on "Alias.." has learned me the innards of extensions, so it seemed easy to at least try to build an alternative (that was this monday afternoon ;) ). It also learned me how to check chrome version, and how chrome updates can break how things work. Why it could be useful to know when chrome and extensions have been updated, and for uninstalled extensions, when they were removed.

Where do you think I can make theses extensions known. Without spamming. I have been off programming for several years (only restarted this february), and I still have access to forums. But not many, and only for web developpers (server side. php, perl, ...). I have tried there (before "extension log"), with moderators agreement, but I'm cornered in unused sections of the forum. I don't even know tech blogs to contact. To tell you how "outdated" I am. :)

gregsadetsky commented 6 years ago

I see now the value of Alias Bookmarks (exporting, managing them differently... and multiple tabs opening at once sounds really awesome!). That's great!

Re: promotion, it's hard (like for any internet project, one of the hard parts is getting traffic).

I used to post answers on Stack Overflow a bit more in the past, and was able to get some initial traffic there. This (Don't add custom...) extension actually comes from a specific SO question/answer and example code from somebody else. I basically said "hey, great idea, here's an extension that does it! and here's the source code!". It was clear that I was promoting something that I had created, but also that I wasn't directing people to buy some software. Being open & free helps, a lot, I think.

Perhaps there are specific discussions / questions about logging extension updates and/or about bookmarks/aliases on Stack Overflow? Considering the amount of questions there, I'm pretty sure there might be.

Add an answer and a few comments (not more than 3-4 I would say) there and see where it leads you :-)

As for the Chrome store, having a good description (for SEO / search terms) and images helps. That's as much as I know. :-)

Procyon-b commented 6 years ago

Re: alias: Yes, it's nice to have the possibility of multiple tabs. I have another example where you can search multiple search engines at once (google, qwant, DuckDuckGo, bing). No to use every day (less then the "search cache").

Re: promo: I have already tried searching for the terms "alias bookmark" with different variation/synonyms, and have found some pages (very few). Most topics on google forums are closed, so no luck there. I have tried a couple blogs, but since the articles where quite old... I have posted a comment on "superuser". On Stack overflow I have found posts on CSE, but really too old to comment. It's when searching these words that I heard about this extension, and a link to github in the comments.

I'll keep searching regularly these sites for new questions.

Thanks

cxw42 commented 6 years ago

Word-of-mouth is good, too - I'm over 300 users of TabFern, largely by telling everybody about it :) . As far as I can tell, once you get over ~500-600 users, you get added to the relevant category highlights in the Web Store, which should also help.

Procyon-b commented 6 years ago

I'm trying word of mouth. But I don't know that many people. ;)

By the way, a little bit on topic now. Do you still have a problem with aol CSE slipping through ?

cxw42 commented 6 years ago

@Procyon-b Updated my initial comment with the repro. The only things I can think of off-hand are:

Hoping you have some other ideas!

Procyon-b commented 6 years ago

Seen your comment. Followed the steps. Reproduced the problem. It's pure logic. The fix has not been fired yet at that particular moment. The old version worked, but was breaking one site: uk.webuy.com I'll look into it. Either fix the webbuy problem another way (I still don't understand how a < form > could competelety vanish from the DOM tree), or attach our fix to another event.

cxw42 commented 6 years ago

@Procyon-b thanks for the repro confirmation! One other thing occurred to me: maybe we could set a timer on DOMContentLoaded, and apply the fix, e.g., 5s after that if load hasn't fired yet. It would be empirical, but maybe an option.

If you can figure out webuy, that would be great! I wonder if webuy's JS is hashing the attributes or children in some way, and the extra child throws that off. Or something React-like? Or perhaps testing for exact object identity in some weird way??

Procyon-b commented 6 years ago

Exactly what I had in mind. I was writing a comment about that when I was delayed.

OK, I have a potentially good solution, that if it works as expected, works every time. And another one that involves applying the fix between the 'DOMContentLoaded' and 'load' events: a timer that is fired around 300ms-1000ms after 'DOMContentLoaded'.

My "good" solution would be to attach an on "click" event to any form that should be fixed, and apply the fix when the uses focuses on the form field. And so before the browser submits the form query.

Our main problem is that uk.webuy.com isn't caught by chrome (when the extension is disabled). So it doesn't fit all the requirements. If we could find why...

Procyon-b commented 6 years ago

Here is an attempt. Debug is enabled, and info is displayed in the console. You'll see 3 iterations of "Spoiled ... Unspoiled were:" preceded by "autoDetect: cnt (event name)". I have added comments to the source. I hope the explanation is clear.

First pass when "DOMContentLoaded", applies "onclick" events Second pass after 1500ms, applies the fix, removes onclick events were the fix has been applied Third pass when document loaded. Applied fix to < form > that appeared after 2nd pass.

Second pass could come 3rd, if the document is fast to load. But they both do the same (it's 2 calls to the same function with the same parameters).

content.20180624.zip

Procyon-b commented 6 years ago

Oh, and I forgot to tell you that this version uses name='' .

cxw42 commented 6 years ago

Nice! I'll try it out, but probably will not be able to until next weekend. Day job, you know :) .

Would you please open a pull request when you are satisfied this is reliable? Put "#14" in the PR description and it will automatically be linked here. Thanks!

Procyon-b commented 6 years ago

job... ;)

We will see if something wrong happens with this version.

Procyon-b commented 6 years ago

ok guys, bad news for me (on a personal and practical level). I won't be able to continue to program. The computer I was using until now has been struck by a power surge during a thunderstorm. It was powered off at the time but somehow suffered damages.

Anyway, I was supposed to lose access to it sometime in the following weeks, but this caught me by surprise before I had the time to put everything on hold in a stable state.

This means that you will be in charge of pushing the new code to a stable version. From was I have seen, or not (no CSE in sight. ;). ), while running the last version of the code (the one in the zip file), it can be used as is. Unless you encounter new problems...

You can still continue to reach me here, but I won't be able to help you much on the programming level.

gregsadetsky commented 6 years ago

@Procyon-b quite sorry to hear that (glad to know you were not hit...!) and thank you for your contribution!

cxw42 commented 6 years ago

@Procyon-b ditto! :( :( Thanks for the report on the latest ZIP version. I hope you are able to recover your work!

Procyon-b commented 6 years ago

It's not really a big deal for me. I was using the computer of a family member who lives nearby. And since university I'm always making a backup when I'm about to leave the computer at the end of the day. :) The computer belonged to my godfather. Four months ago he suffered multiple micro cerebral haemorrhages, and is now living in a retirement home. His children are emptying the house week after week, and this computer was scheduled to leave next week. (I've already lost access to a laptop last month) It's not unexpected, only the way is unexpected.

I've everything backed up on a 32gb usb key. An incremental backup of my profile directory, which is useless when you move from one computer to another, and my whole dev+utils+downloads directory tree. So no worry.

I'm (always) very short on cash, so I don't know when I'll be able to resume these activities.

Procyon-b commented 6 years ago

(I post here, where I said goodbye)

Since my online return 2 days ago, I have not taken the time to say hello.

A couple of weeks ago, I managed to salvage an old laptop (Core 2 Duo 1660 MHz 2GB). But before using it I had to backup all personal datas on it. The previous owner couldn't access it anymore (I unlocked the password protected account by booting on a usb key). Since it was running on windows vista I had to install a brand new setup of windows 7. After 2 days of updating almost everything presented by windows update, I ended up with a broken taskbar (regularly task icons were not updated for several minutes). With no solution found (after many unsuccessful attempts of upgrading/downgrading drivers), I reinstalled (again) windows from scratch. Taking the time to install updates chronologically by batches of 4-10. Waiting each time at least 30 minutes to see if something was broken. With over 160 upgrades no wonder it took me an additional week to be operational. ;) And you know what? The guilty package was the last one! :o) (2018-07 Security Monthly Quality Rollup for Windows 7 for x86-based Systems KB4338818) Should I bother and report the problem to MS?

After reinstalling chrome I have discovered that 2 extensions have disappeared from the web store. For one I have the explanation (stylish), but not for the other. Is there a way to know why an extention has been pulled. Either by google, or by the developper.

Another question. The laptop's battery is completely exhausted, and either there is no CMOS battery or it's exhausted too. If I unplug the computer, I need to set the correct date/time the next time it boots up. I know how to do it automatically in windows (either with windows built-in service, or with more flexible 3rd party utilities). But since I have usb keys (and 2 with portable linux distrib used to unlock passwords), do you know a method to edit .cpio files ? I can view/extract files, but don't have the correct utility to update config files in this type of file. Or better do you know a really small portable linux distribution that I can use to run ntpd automatically?

gregsadetsky commented 6 years ago

@Procyon-b I unfortunately know why Stylus has been removed... read and weep. I was using it as well. Quite angry & pissed... My thanks to the security researched who found & reported this issue. Also to the Chrome team for having disabled the extension remotely.

As for cpio, just going on a blind guess/quick search: would this work?

Procyon-b commented 6 years ago

It's the exact article I have read. I have learnt about it by a post on webmasterworld. You meant stylish, not stylus. Fortunately for me, I had the option disabled. So my data were not sent. :) I'm now running stylus. It works exactly the same.

Thanks, I'll test that utility.