<feed xmlns='http://www.w3.org/2005/Atom'>
<title>vimium/tests, branch 1.55</title>
<subtitle>The hacker's browser.</subtitle>
<link rel='alternate' type='text/html' href='https://git.teddywing.com/fork/vimium/'/>
<entry>
<title>Cache content_scripts/vimium.css in chrome.storage.local.</title>
<updated>2016-04-18T11:20:32+00:00</updated>
<author>
<name>Stephen Blott</name>
</author>
<published>2016-04-18T10:43:53+00:00</published>
<link rel='alternate' type='text/html' href='https://git.teddywing.com/fork/vimium/commit/?id=247878a7919c5e9b27638395d479939f9ad5d22e'/>
<id>247878a7919c5e9b27638395d479939f9ad5d22e</id>
<content type='text'>
Previously, we had two different approaches.  This seems like a simpler
approach.

We simply cache the Vimium CSS in chrome.storage.local (in the
background page) and fetch it from there (in UI components).

There is also a minor change in the we no longer cache the CSS in
memory.  This seems to be the right thing to do.  Caching the CSS in
memory consumes a small amount of memory.  However, it can only speed up
the fastest loads.  It cannot speed up the first load -- which is likely
the one that matters most.  So caching the CSS in memory seems to make
little sense.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Previously, we had two different approaches.  This seems like a simpler
approach.

We simply cache the Vimium CSS in chrome.storage.local (in the
background page) and fetch it from there (in UI components).

There is also a minor change in the we no longer cache the CSS in
memory.  This seems to be the right thing to do.  Caching the CSS in
memory consumes a small amount of memory.  However, it can only speed up
the fastest loads.  It cannot speed up the first load -- which is likely
the one that matters most.  So caching the CSS in memory seems to make
little sense.
</pre>
</div>
</content>
</entry>
<entry>
<title>Fix tests.</title>
<updated>2016-04-18T09:25:39+00:00</updated>
<author>
<name>Stephen Blott</name>
</author>
<published>2016-04-18T09:25:36+00:00</published>
<link rel='alternate' type='text/html' href='https://git.teddywing.com/fork/vimium/commit/?id=61e94c77d37011f675478c95b33ccd1dcf70ca6d'/>
<id>61e94c77d37011f675478c95b33ccd1dcf70ca6d</id>
<content type='text'>
When the implementation of windowIsFocused() changed, the tests started
failing.

(It's not clear how I didn't spot this sooner.  I've run the tests
countless times - and they passed - since that change was made.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
When the implementation of windowIsFocused() changed, the tests started
failing.

(It's not clear how I didn't spot this sooner.  I've run the tests
countless times - and they passed - since that change was made.
</pre>
</div>
</content>
</entry>
<entry>
<title>Require documentReady for all UI components.</title>
<updated>2016-04-18T06:01:36+00:00</updated>
<author>
<name>Stephen Blott</name>
</author>
<published>2016-04-18T05:49:30+00:00</published>
<link rel='alternate' type='text/html' href='https://git.teddywing.com/fork/vimium/commit/?id=9c4c79eef9267d4bde62a996f82fcb0eff66df91'/>
<id>9c4c79eef9267d4bde62a996f82fcb0eff66df91</id>
<content type='text'>
This replaces c01d7eea8675f9a7d84999777e8de72244d687b6.

All UI components require the document to be ready.  So, here the
constructor waits for DomUtils.documentReady().  The diff looks big, but
mainly it's a result of changes in indentation in the constructor and in
hide().

Also, hide() now uses @postMessage() to post a null message.  This
forces hide to use @iframePort.use(), which ensures that hide()s cannot
overtake activate()s.

This continues #2100.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This replaces c01d7eea8675f9a7d84999777e8de72244d687b6.

All UI components require the document to be ready.  So, here the
constructor waits for DomUtils.documentReady().  The diff looks big, but
mainly it's a result of changes in indentation in the constructor and in
hide().

Also, hide() now uses @postMessage() to post a null message.  This
forces hide to use @iframePort.use(), which ensures that hide()s cannot
overtake activate()s.

This continues #2100.
</pre>
</div>
</content>
</entry>
<entry>
<title>Fix Vomnibar initialization issue.</title>
<updated>2016-04-10T11:44:12+00:00</updated>
<author>
<name>Stephen Blott</name>
</author>
<published>2016-04-10T11:41:26+00:00</published>
<link rel='alternate' type='text/html' href='https://git.teddywing.com/fork/vimium/commit/?id=6e12e005a4261711583571be23018481a4a23230'/>
<id>6e12e005a4261711583571be23018481a4a23230</id>
<content type='text'>
On a slow loading page, as the page is loading, hit `o` repeatedly.
Eventually, Vimium hangs.

We seem to have had this problem for quite some time (e.g. it's in
1.54).

This fixes the problem by ensuring that the Vomnibar is initialized
before launching it.

Also fix the same issue for the help dialog.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
On a slow loading page, as the page is loading, hit `o` repeatedly.
Eventually, Vimium hangs.

We seem to have had this problem for quite some time (e.g. it's in
1.54).

This fixes the problem by ensuring that the Vomnibar is initialized
before launching it.

Also fix the same issue for the help dialog.
</pre>
</div>
</content>
</entry>
<entry>
<title>Merge pull request #2088 from smblott-github/filtered-hints-better-typed-text-matching</title>
<updated>2016-04-08T12:36:24+00:00</updated>
<author>
<name>Stephen Blott</name>
</author>
<published>2016-04-08T12:36:24+00:00</published>
<link rel='alternate' type='text/html' href='https://git.teddywing.com/fork/vimium/commit/?id=9d7351903d0148373a2ad4c06d006e8ee0613be2'/>
<id>9d7351903d0148373a2ad4c06d006e8ee0613be2</id>
<content type='text'>
Filtered hints: better typed text handling.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Filtered hints: better typed text handling.</pre>
</div>
</content>
</entry>
<entry>
<title>Filtered hints; ignore unmatched text.</title>
<updated>2016-04-08T08:45:22+00:00</updated>
<author>
<name>Stephen Blott</name>
</author>
<published>2016-04-08T08:42:22+00:00</published>
<link rel='alternate' type='text/html' href='https://git.teddywing.com/fork/vimium/commit/?id=1a71dc6c8f323cef31eb006a8a6299b4dfe71332'/>
<id>1a71dc6c8f323cef31eb006a8a6299b4dfe71332</id>
<content type='text'>
When the user is typing a link's text, any mistyped character exits link
hints mode.  This makes little sense.  In practice, this usually happens
because the user mis-typed something.

Here, we ignore typed characters which do not match any hints.

(Also, add a test for this.)
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
When the user is typing a link's text, any mistyped character exits link
hints mode.  This makes little sense.  In practice, this usually happens
because the user mis-typed something.

Here, we ignore typed characters which do not match any hints.

(Also, add a test for this.)
</pre>
</div>
</content>
</entry>
<entry>
<title>Do not post hint descriptors back to the frame itself.</title>
<updated>2016-04-08T06:55:16+00:00</updated>
<author>
<name>Stephen Blott</name>
</author>
<published>2016-04-08T06:55:13+00:00</published>
<link rel='alternate' type='text/html' href='https://git.teddywing.com/fork/vimium/commit/?id=d1c230cabb051a5429242c98e67d37b65edc58b8'/>
<id>d1c230cabb051a5429242c98e67d37b65edc58b8</id>
<content type='text'>
When distributing hint descriptors, do not post a frame's own hint
descriptors back to the frame itself.  It already has them.

With regard to the message-passing cost only, this represents a speedup
of approximately 3/2 for link-busy sites like reddit -- several tens of
milliseconds for me.  There are other costs too (such as processing the
hint descriptors) bu these are not affected.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
When distributing hint descriptors, do not post a frame's own hint
descriptors back to the frame itself.  It already has them.

With regard to the message-passing cost only, this represents a speedup
of approximately 3/2 for link-busy sites like reddit -- several tens of
milliseconds for me.  There are other costs too (such as processing the
hint descriptors) bu these are not affected.
</pre>
</div>
</content>
</entry>
<entry>
<title>Handle requireHref for link hints locally.</title>
<updated>2016-04-04T05:15:52+00:00</updated>
<author>
<name>Stephen Blott</name>
</author>
<published>2016-04-03T08:45:22+00:00</published>
<link rel='alternate' type='text/html' href='https://git.teddywing.com/fork/vimium/commit/?id=c99af1b7d1d559e54a8849a617920f946ca9bd0b'/>
<id>c99af1b7d1d559e54a8849a617920f946ca9bd0b</id>
<content type='text'>
The check that an element as an href (for certain hint modes) can be
done earlier, thereby avoid the need to pass that information between
frames.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The check that an element as an href (for certain hint modes) can be
done earlier, thereby avoid the need to pass that information between
frames.
</pre>
</div>
</content>
</entry>
<entry>
<title>Refactor DomUtils.documentReady.</title>
<updated>2016-04-02T11:27:21+00:00</updated>
<author>
<name>Stephen Blott</name>
</author>
<published>2016-04-02T11:12:19+00:00</published>
<link rel='alternate' type='text/html' href='https://git.teddywing.com/fork/vimium/commit/?id=57c3cae5abd5c796b093ad02661b040b2c877fc4'/>
<id>57c3cae5abd5c796b093ad02661b040b2c877fc4</id>
<content type='text'>
We do not need to install separate event listeners for every callback.
Just install one listener and keep track of the callbacks ourself.

This is clearer, and also determines the order in which callbacks are
called.  (Although, we don't rely on that currently.)

This also adds a tests.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
We do not need to install separate event listeners for every callback.
Just install one listener and keep track of the callbacks ourself.

This is clearer, and also determines the order in which callbacks are
called.  (Although, we don't rely on that currently.)

This also adds a tests.
</pre>
</div>
</content>
</entry>
<entry>
<title>Rename handlerStack constants.</title>
<updated>2016-03-30T13:58:46+00:00</updated>
<author>
<name>Stephen Blott</name>
</author>
<published>2016-03-30T12:07:05+00:00</published>
<link rel='alternate' type='text/html' href='https://git.teddywing.com/fork/vimium/commit/?id=21da3fcafbb29540788037dbcdbdce79ad14e650'/>
<id>21da3fcafbb29540788037dbcdbdce79ad14e650</id>
<content type='text'>
Problems:
  - The meanings of some of the Mode/handlerStack constant names is far
    from obvious.
  - The same thing is named different things in different places.

This changes various constant names such that:
  - the names used in the handler stack and in the modes are the same.
  - ditto vis-a-vis DomUtils.

Also, break out the core of the handler stacks' `bubbleEvent` method
into a switch statements.  This makes it more obvious that the cases are
mutually exclusive.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Problems:
  - The meanings of some of the Mode/handlerStack constant names is far
    from obvious.
  - The same thing is named different things in different places.

This changes various constant names such that:
  - the names used in the handler stack and in the modes are the same.
  - ditto vis-a-vis DomUtils.

Also, break out the core of the handler stacks' `bubbleEvent` method
into a switch statements.  This makes it more obvious that the cases are
mutually exclusive.
</pre>
</div>
</content>
</entry>
</feed>
