I saw Evan's extension and was inspired to try something even simpler.
pinboard.in is a delicious replacement and I was motivated to move
their bookmarklet into the page action area.
- Getting started was a bit difficult since I didn't know about
load-extension and "Load unpacked extension" didn't appear to work (on
linux). Was very confused. Figured out there were parsing errors in my
manifest. Might want to log those messages to chrome://extensions/
instead of just dumping them to the console.
- Listening to various tab events is a fairly low level API. Have you
considered a callback function that decides whether a certain URL
should be shown?
chrome.pageActions["bookmarks].shouldShowCallback(function(url) { /*
returns true to show action */ })
On second thought, maybe http://crbug.com/21729 is good enough and I'm
looking at the wrong solution to the pain point...
- tab.title (from chrome.tabs.get(...)) is undefined until after the
page has finished loading, which is a problem since I'm taking the
title and passing it to the bookmarking service. The title exists
somewhere; it's displayed in the on screen tab title at the time it
returns undefined to the callback.
-- Elliot
On Sat, Sep 12, 2009 at 7:02 PM, Evan Martin <[email protected]> wrote:
>
> [resend, I think I screwed up the previous three tries]
> I wrote an extension that adds a page action to trigger Readability:
> http://lab.arc90.com/experiments/readability/
>
> It's basically just a glorified bookmarklet.
>
> Code is here:
> http://neugierig.org/software/git/?url=chrome-readability/
> Browse it here:
> http://neugierig.org/software/git/?url=chrome-readability/tree/
>
> I can't provide a .crx because I wasn't able to figure out how to
> build one, which I think means I can't actually install it. :~(
>
> Here's some feedback on the process. I know extensions are still
> under development, and that surely most if not all of these are
> already known bugs, and that others are probably my fault for doing it
> on Linux. I thought it would still be helpful to give an overview of
> points of confusion I ran into, in case any of these aren't yet known
> bugs.
>
> - Weight.
> This feels like a *lot* of code (content script, page action,
> background page, manifest, message ports) just to make a bookmarklet
> appear in the URL bar. I wonder if there's a place for a "simple"
> extension API for bookmarklet-y sorts of things?
>
> - Making my page action show up.
> It wasn't clear to me how to make my action just always show up.
> I think I may have done it wrong:
> http://neugierig.org/software/git/?url=chrome-readability/tree/background.html
> since it feels unreliable (sometimes it doesn't show).
>
> - The failure modes are confusing.
> Sometimes it prints to the console (when I've made a typo in my
> manifest); other times it prints to the error console of the extension
> (bugs in my background js); other times it prints to the page's error
> console (bugs in my content script). Many of those times there's no
> obvious way to map the error back to the line that is failing.
>
> - JS console.
> Do we really have no UI to get to the JS console? I had to open the
> developer tools, then guess that one of the icons at the bottom of
> the window would show me the messages.
>
> - The docs around content scripts communicating with the embedding
> page aren't too clear. See e.g.:
> http://code.google.com/chrome/extensions/content_scripts.html#messaging
> That section is mostly just a big example but for example nowhere is
> the postMessage API described. I'd prefer it to be laid out more
> like:
> - how to make each endpoint listen for messages
> - how to make each endpoint send a message
>
> - Doc organization.
> It would've been clearer to me if there is one more level of nesting.
> Sections like toolstrips, page actions are features with manifest
> edits as well as APIs, while sections like tabs and windows are just
> API references.
>
> - Building the .crx.
> strace -fo log chromium-browser --user-data-dir=/home/martine/test
> --pack-extension=`pwd`/readext
> --pack-extension-key=chrome-readability.pem
> Doesn't show it ever trying to create my .pem. Maybe it's not implemented,
> but it'd be nice if it at least complained in that case.
>
> >
>
--~--~---------~--~----~------------~-------~--~----~
Chromium Developers mailing list: [email protected]
View archives, change email options, or unsubscribe:
http://groups.google.com/group/chromium-dev
-~----------~----~----~----~------~----~------~--~---