Extensions designed to enrich your browsing experience


Yes, that's right. That's no mistake. This blog post is going to cover modern scroll's version 2.4.3 (again).

but: it's for Chrome this time! …

Since Opera doesn't reveal any details about its upcoming version and modern scroll 2.4.3 works very reliably, I decided to bring its awesomeness to Chrome, too :up:

First, I'm gonna provide you with modern scroll (Chromium) beta 1 :yes:
in order to install it, save the file on your computer, open chrome://extensions/ and drag the file there

Now let's get into it πŸ™‚

I've already done a pretty massive amount of work (Chrome doesn't make it easy to fulfill all of their restrictions), but I need some help:

  1. options page: how do I localize it?
    I've converted all localization files into Chrome's format (messages.json), but I don't know how to display them in the options page without inserting an extra tag for each string into it. Is there any nice way to do this, which – optimally – integrates strings during loading instead of being exchanged/inserted on completion?

    I realized, that doing exactly what I wrote here (exchange on completion) doesn't harm in Chrome at all. In contrast to Opera, Chrome doesn't show the initial set of strings first :up:
  2. settings: How do I have to save settings within the options page to make them available to every website? I'm currently using localStorage which works fine for the options page itself, but it's not available outside of it :down:
    I got it. It's pretty broken right now, but it's working. beta 2 will make settings affect all pages :up:

Although I figured out how to solve these two issues by myself, I'm still thankful for every piece of advice no matter if you fork my repo and fix stuff on your own or just post a link to a how-to-website. Everybody who is willing to give me a hand is very welcome to do so πŸ™‚

Let's rock Chrome together! :yes:


Comments on: "modern scroll (Chromium) beta 1" (9)

  1. Acryion said:

    Isn't it a bit useless to make it work on Chrome now?Blink will be different. Chromium will change to be different than it's now anyways. Won't this result, most problably, in broken behaviour really soon? Say … 5 months tops.

  2. They (Chrome users) don't deserve such awesomeness. πŸ˜€ πŸ˜€ πŸ˜€ πŸ˜€ I'll install in my Chromium and see.

  3. christoph142 said:

    Originally posted by Cryio:

    Isn't it a bit useless to make it work on Chrome now? Blink will be different.

    Why should it?Blink is an evolution, not an engine switch in Chrome. They just continue to do what they did with WebKit.I'm using Chrome 28 beta for testing, which already uses Blinkmodern scroll hardly uses any APIs (one, the storage API, to be precise) and since it's coming from Opera, there surely isn't any WebKit-specific code that's gonna be droppedOriginally posted by AndrΓ©:

    They (Chrome users) don't deserve such awesomeness.

    Well, I get your point :jester:But this is more of a selfish project. My goal is not primarily to provide Chrome users with modern scroll, but toget acquainted with Chrome's extension structure since I guess Opera is going to use a very similar one (I'm eager to know whether they will support Chrome extensions :sherlock:) to supply you with modern scroll for Opera 14 ASAPget new users who like to contribute to localization and last but not least todo something cause I'm bored as hell in this Opera silence πŸ˜†

  4. christoph142 said:

    I just submitted my first Blink-bug :knight:

  5. Originally posted by christoph142:

    do something cause I'm bored as hell in this Opera silence

    In the meantime you could write an article about the strategy and the problems encountered when "converting" the extension to Chrom(e|ium) and how you solved them. I promise that I will read it πŸ˜€

  6. christoph142 said:

    to be honest: as long as you don't need to implement an options page, it's very easy. You can write or copy a manifest file in a few minutes and package cleanPages as a Chrome extension :up:

  7. I fear CP needs its options page as soon as I want to provide user settings for colors, font sizes, widths, if videos and images are embedded or not, etc..As it is now, about half of the code of the extension works in or for the options page (26k alone for the color chooser) and then some for the multi-language help files …I am just looking into the Readability Redux extension for Chrome, which is based on the same arc90 code as mine (but without the ton of tweaks) and has an options page too, may be I can learn from it how it is done …

  8. christoph142 said:

    Well, it requires some work, but it's not too hard to understand. You can convert your existing options page out of Opera.One ***** limitation of Chrome's extension's options page is, that you are not allowed to use any inline JS :down:Another key difference is storage: instead of widget.preferences you have to use chrome.storage.local or chrome.storage.sync. The latter one (as you might have guessed) syncs all extension settings across your devices whereas the first one only stays on the machine you're working on.In contrast to Opera's mechanism, both of these methods store objects (no need to JSON.stringify and parse) &are asynchronous!

  9. Thanks for giving the hint to those Objects | APIs – now I found the documentation :up:Inline JS? That one line I have in my options page can easily be transferred to one of the according js files. :lol:… I wonder why it still lingers there … … but I encountered a different problem: In opposition to Opera with Caracan and Presto there is no reliable way to check for installed fonts, that could will become a serious problem for me.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )


Connecting to %s

%d bloggers like this: