After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 392058 - Firefox save document POR position
Firefox save document POR position
Status: RESOLVED FIXED
Product: lsr
Classification: Deprecated
Component: extensions
0.3.x
Other Linux
: Normal normal
: 0.5.0
Assigned To: LSR maintainers
LSR maintainers
Depends on:
Blocks:
 
 
Reported: 2007-01-02 21:09 UTC by Peter Parente
Modified: 2007-02-23 18:21 UTC
See Also:
GNOME target: ---
GNOME version: ---



Description Peter Parente 2007-01-02 21:09:21 UTC
Something changed in FF3 so that the saving of the last reviewed POR no longer works. Investigate and correct.
Comment 1 Peter Parente 2007-01-02 21:10:53 UTC
When fixing, also handle the bug where the document POR is not properly saved when menu items are activated, deactivated, and the focus returns elsewhere in the document.
Comment 2 Peter Parente 2007-01-24 17:11:37 UTC
Most user interaction with Firefox is through the review keys to browse through the text on a web page document. While the user is reviewing using the pointer, the application focus/caret remains fixed somewhere else in the app. 

For instance, when a new document loads the document frame gets focus. The user then begins to review the document. While reviewing, though, the application focus still remains on the document frame, not on the text the user is reviewing.

A problem arises when the user is in the middle of a review and either 1) activates a menu (e.g. Alt-F) or 2) switches away to another application (e.g. Alt-Tab). When the user closes the menu or returns to Firefox, the browser fires a focus change event *on the element that had application focus beforehand.* In the example above, this means focus returns to the document frame. When the user starts reviewing again, he's back at the beginning of the web page!

This situation is clearly unacceptable. The solution to this problem is to have FirefoxPerk try to cache the pointer POR and restore it when Firefox regains the view or a "floater" (e.g. menu) is deactivated. This is the current approach used in the Perk. Handling of floaters was never implemented. Restoring after Firefox regains the view was working, but now appears to be broken. Throwing away old PORs to closed or refreshed documents was also never implemented.
Comment 3 Scott Haeger 2007-01-30 16:41:56 UTC
Works for menu, tab and application switching.  Bug report should remain incomplete until https://bugzilla.mozilla.org/show_bug.cgi?id=368322 is resolved.
Comment 4 Scott Haeger 2007-02-06 16:42:11 UTC
Focus and view events in Firefox:

Tabbing: focus(doc frame), if manip is focused: focus(manip) .
Menu: if manip is focused: focus(manip) else: focus(doc frame)
App: View(frame), focus(doc frame), if manip is focused: focus(manip) .
Comment 5 Scott Haeger 2007-02-06 16:48:24 UTC
Corrected Focus and view events in Firefox:

Tabbing: focus(doc frame), if manip is focused: focus(manip) .
Menu: if manip is focused: focus(manip) else: focus(doc frame)
App: View(frame), if manip is focused: focus(doc frame), focus(manip).

Comment 6 Scott Haeger 2007-02-06 17:14:22 UTC
Focus and view events in Firefox:

Tabbing: focus(doc frame), if manip is focused: focus(manip) .
Menu: if manip is focused: focus(manip) else: focus(doc frame)
App: View(frame), if manip is focused: focus(doc frame), focus(manip).

From chrome element (address bar is entry element):
Tabbing: if manip is focused: focus(doc frame), focus(manip) else: focus(entry)
Menu:  focus(entry)
App: view
Comment 7 Scott Haeger 2007-02-06 18:45:17 UTC
Firefox focus events

tab chrome to chrome: focus(new element)
tab chrome to doc frame: focus(doc frame) 
tab chrome to in-page: focus(new element)
tab in-page to in-page: focus(new element)
tab in-page to doc frame (bottom going forward): focus(document frame), focus(frame), focus(addressbar)
tab in-page to doc frame (top going backward): focus(document frame)
tab in-page to chrome: focus(frame), focus(entry)
tab doc frame to chrome: focus(frame), focus(document frame)
tab doc frame to in-page: focus(new element)

tab chrome to menu: focus(menu), focus(menu item)
tab in-page to menu: focus(menu), focus(menu item)
tab doc frame to menu: focus(menu), focus(menu item)
tab menu to chrome: focus(chrome element)
tab menu to in-page: focus(in-page element)
tab menu to doc frame: focus(document frame)

change view to chrome: view event only.
change view to doc frame: view event only.
change view to in-page: focus(document frame), focus(in-page element)
Comment 8 Scott Haeger 2007-02-07 16:17:35 UTC
Checked into repository with the following notes:

1.  An application switch into Firefox when the user is not on the first tab is broken.  This problem will be resolved when the above mentioned Firefox bug is fixed.

2.  Excessive output occurs during the following situations:

- switching tabs from chrome in focus to tab with in-page focus.
- 1st time visiting doc frame.
- 1st time visiting page with manip in focus. 
- probably others.

These will be fixed when event chaining is implemented.  http://bugzilla.gnome.org/show_bug.cgi?id=405408

Comment 9 Scott Haeger 2007-02-23 18:21:32 UTC
Most cases have been fixed in repository.  See http://bugzilla.gnome.org/show_bug.cgi?id=410101 for the final problem.