Issue 2220: FindNext doesn't work beyond page 1 of search results http://code.google.com/p/chromium/issues/detail?id=2220
Comment #6 by [EMAIL PROTECTED]: I was going to suggest this not be a 1.0 blocker, but you beat me to it. This is actually yet another case of a bug that would be fixed if we automatically hid the Find box on blur. Then, when you start interacting with the page (ie. click the "Next Results") the Find box would disappear. My recommendation would be to up the priority on that bug and put it on the 1.1 train, if it isn't there already. In any case, the problem with this bug is that when the user clicks "Next results" the DOM is modified and the tickmark vector is partially/fully invalid. Ojan, Dimitri and I brainstormed this problem a bit on Friday and we can think of a number of ways to approach this: 1) We can register for DOM change events and for each removed node, we could evict its descendants from the tickmark vector and for each added node we could do a search on that subtree and add it to the vector. This would have to be done in a smart way so that we don't put a big load on the cpu if the DOM is changing a lot. 2) Another approach is that once we FindNext to an invalid tickmark (one that is no longer a descendant of the body node) we clear the tickmark vector for that frame, redo it and restore state in such a way that the first new tickmark found becomes active. 3) We can alleviate some of the symptoms by just skipping over and evicting invalid tickmarks as we find them with FindNext (when we jump to an invalid tickmark we evict that tickmark and try the next one until we find a valid one or reach the end of the tickmark vector). Approach 3 is quick, dead simple, easy and very low risk, but of course means that you don't get new tickmarks added for the dynamic content that was just added to the page. :/ It also doesn't address new nodes added to the DOM, it just removed invalid ones. Approach 2 isn't very complex and doesn't come with much of a performance risk but feels a bit hacky, especially restoring back the state so that we get the right tickmark active after redoing the search in the frame. And, of course, the new tickmarks wouldn't appear until you hit an invalid one. I took a stab at this and have it working in my tree, except that if you FindNext from tickmark A (valid) to tickmark B (invalid), the new tickmarks appear but tickmark A is still the active one after doing FindNext. Another FindNext moves active tickmark status to B. :/ Approach 1 is the most powerful and promising, but also the most complex approach and probably will take time to get right. Definately not worth the risk for 1.0. -- You received this message because you are listed in the owner or CC fields of this issue, or because you starred this issue. You may adjust your issue notification preferences at: http://code.google.com/hosting/settings --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Chromium-bugs" group. To post to this group, send email to [email protected] To unsubscribe from this group, send email to [EMAIL PROTECTED] For more options, visit this group at http://groups.google.com/group/chromium-bugs?hl=en -~----------~----~----~----~------~----~------~--~---
