Index: src/orca/default.py
===================================================================
--- src/orca/default.py	(revision 2498)
+++ src/orca/default.py	(working copy)
@@ -1926,15 +1926,15 @@
 
                 lastProgressBarTime = self.lastProgressBarTime[obj]
                 lastProgressBarValue = self.lastProgressBarValue[obj]
+                value = obj.value
+                currentValue = int(value.currentValue)
+                percentValue = int((value.currentValue / \
+                    (value.maximumValue - value.minimumValue)) * 100.0)
 
                 if (currentTime - lastProgressBarTime) > \
-                           settings.progressBarUpdateInterval:
-                    value = obj.value
-                    currentValue = int(value.currentValue)
-                    percentValue = int((value.currentValue / \
-                        (value.maximumValue - value.minimumValue)) * 100.0)
-                    if lastProgressBarValue != currentValue \
-                       or percentValue == 100:
+                       settings.progressBarUpdateInterval \
+                   or percentValue == 100:
+                    if lastProgressBarValue != percentValue:
                         utterances = []
 
                         # There may be cases when more than one progress 
@@ -1965,7 +1965,7 @@
                         speech.speakUtterances(utterances)
 
                         self.lastProgressBarTime[obj] = currentTime
-                        self.lastProgressBarValue[obj] = currentValue
+                        self.lastProgressBarValue[obj] = percentValue
 
     def locusOfFocusChanged(self, event, oldLocusOfFocus, newLocusOfFocus):
         """Called when the visual object with focus changes.
Index: src/orca/Gecko.py
===================================================================
--- src/orca/Gecko.py	(revision 2498)
+++ src/orca/Gecko.py	(working copy)
@@ -3221,9 +3221,10 @@
             documentFrame = self.getDocumentFrame()
 
             # If the document frame is busy loading, we won't present
-            # anything to prevent Orca from being too chatty.
+            # anything to prevent Orca from being too chatty.  We also
+            # don't want to present anything if we're not in the document.
             #
-            if self._loadingDocumentContent:
+            if self._loadingDocumentContent or not self.inDocumentContent():
                 return
 
             braille.displayMessage(documentFrame.name)
@@ -3233,9 +3234,6 @@
                 % (documentFrame.name,
                    rolenames.rolenames[rolenames.ROLE_PAGE_TAB].speech))
 
-            if not self.inDocumentContent():
-                return
-
             [obj, characterOffset] = self.getCaretContext()
             if not obj:
                 [obj, characterOffset] = self.findNextCaretInOrder()
@@ -3281,29 +3279,6 @@
         - obj: the Accessible whose visual appearance changed.
         """
 
-        # We'll try to give some presentation of progress level for
-        # loading the document content if we can.  [[[TODO: HACK - WDW
-        # I've been filling the talkback buffers with Firefox crashes
-        # all day today.  Looks like Gecko wants to crash when you
-        # probe things about progress bars.  Maybe it's a passive
-        # aggressive way of saying "HEY! QUIT CHECKING MY STATUS!
-        # I'LL TELL YOU WHEN I'M DONE!!!".  So...we won't offer
-        # this feature right now.]]]
-        #
-        if False and obj.role == rolenames.ROLE_PROGRESS_BAR:
-            if self._loadingDocumentContent:
-                [regions, focusedRegion] = \
-                    self.brailleGenerator.getBrailleRegions(event.source)
-                braille.clear()
-                line = braille.Line()
-                braille.addLine(line)
-                braille.setFocus(focusedRegion)
-                braille.refresh(True)
-                if not speech.isSpeaking():
-                    speech.speakUtterances(\
-                        self.speechGenerator.getSpeech(event.source, True))
-                return
-
         if (obj.role == rolenames.ROLE_CHECK_BOX) \
             and obj.state.count(atspi.Accessibility.STATE_FOCUSED):
             orca.setLocusOfFocus(event, obj, False)
