~ubuntu-branches/ubuntu/intrepid/xulrunner-1.9/intrepid

« back to all changes in this revision

Viewing changes to mozilla/toolkit/content/findUtils.js

  • Committer: Bazaar Package Importer
  • Author(s): Alexander Sack, Alexander Sack, Fabien Tassin
  • Date: 2008-02-13 11:47:21 UTC
  • mfrom: (1.1.4 upstream)
  • Revision ID: james.westby@ubuntu.com-20080213114721-7om0mgzngvuk9czv
Tags: 1.9~b3+nobinonly-0ubuntu1
* release FIREFOX_3_0b3_RELEASE

[ Alexander Sack ]
* submit patch that ships xpcshell to bugzilla
  - rename debian/patches/ship_xpcshell.patch =>
           debian/patches/bz410617_att295212_ship_xpcshell.patch
  - update debian/patches/series
* fix tooltip in epiphany: previously displayed out of screen bounds
  (LP: #37507)
  - add debian/patches/bz233371_att297343_fix_outofscreen_embed_tooltip.patch
  - update debian/patches/series
* use default upstream gcc tweaks for improved performance - especially of the
  javascript engine
  - update debian/rules
* update global extension/plugin patch to apply cleanly against latest code
  - update debian/patches/bzXXX_gre_extension_plugin_support.patch
* fix pyxpcom build failure introduced by recent commit
  - add debian/patches/bzXXX_fix_pyxpcom_build_failure.patch
  - update debian/patches/series
* add distro independent global install locations for extensions,
  /usr/lib/mozilla/extensions and /usr/share/mozilla/extensions
  - update debian/xulrunner-1.9.dirs
* support embedded tarball layout when either there is a *.tar.bz2 in orig tarball
  or if DEBIAN_MOZCLIENT_EMBEDDED is not unset (you will need this to produce embedded
  tarballs during |get-orig-source|
  - update debian/rules
* bump minimum libnss3-dev build requirements to >= 3.12.0~1.9b3
  - update debian/control
* bump minimum libnspr4-dev build requirements to >= 4.7.0~1.9b3
  - update debian/control

[ Fabien Tassin ]
* Drop patches applied upstream
  - drop debian/patches/bz410617_att295212_ship_xpcshell.patch
  - drop debian/patches/bz404634_att294921.patch
  - drop debian/patches/bz386610_python2.5_ftbfs_amd64.patch
  - drop debian/patches/bz373918_att295042.patch
  - drop debian/patches/bz408062_unstable_pc.patch
  - drop debian/patches/bz384304_fix_recursive_symlinks.patch
  - update debian/patches/series
* Refresh diverged patches:
  - update debian/patches/bzXXX_pc_honour_system_nspr_nss.patch
  - update debian/patches/rename_venkman_addon.patch
  - update debian/patches/bz344818_cairo_xrender.patch
* Install links for all .so libs in the -dev package
  - update debian/patches/dont_install_so_in_dev.patch
* Bump gtk requirement to 2.12 as per Mozilla bug 412432
  - update debian/control
* Add #DEBHELPER# token to postinst/prerm scripts
  - update debian/xulrunner-1.9.{postinst,prerm}
* Install previously missed libdbusservice.so
  - update debian/xulrunner-1.9.install
* Update venkman patch to also rename locales
  - update debian/patches/rename_venkman_addon.patch
* Bump requirement for system cairo to >= 1.5.8 as we now need
  the newly added cairo_path_extents()
  - update debian/rules
* Include mozilla-devscripts file using -include so ifneq could be omitted
  - update debian/rules
* Fix missing .so symlinks regression
  - update debian/patches/dont_install_so_in_dev.patch

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
# -*- Mode: Java; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
2
 
# ***** BEGIN LICENSE BLOCK *****
3
 
# Version: MPL 1.1/GPL 2.0/LGPL 2.1
4
 
#
5
 
# The contents of this file are subject to the Mozilla Public License Version
6
 
# 1.1 (the "License"); you may not use this file except in compliance with
7
 
# the License. You may obtain a copy of the License at
8
 
# http://www.mozilla.org/MPL/
9
 
#
10
 
# Software distributed under the License is distributed on an "AS IS" basis,
11
 
# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
12
 
# for the specific language governing rights and limitations under the
13
 
# License.
14
 
#
15
 
# The Original Code is mozilla.org code.
16
 
#
17
 
# The Initial Developer of the Original Code is
18
 
# Netscape Communications Corporation.
19
 
# Portions created by the Initial Developer are Copyright (C) 1998
20
 
# the Initial Developer. All Rights Reserved.
21
 
#
22
 
# Contributor(s):
23
 
#   Simon Fraser <sfraser@netscape.com>
24
 
#   Dean Tessman <dean_tessman@hotmail.com>
25
 
#
26
 
# Alternatively, the contents of this file may be used under the terms of
27
 
# either the GNU General Public License Version 2 or later (the "GPL"), or
28
 
# the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
29
 
# in which case the provisions of the GPL or the LGPL are applicable instead
30
 
# of those above. If you wish to allow use of your version of this file only
31
 
# under the terms of either the GPL or the LGPL, and not to allow others to
32
 
# use your version of this file under the terms of the MPL, indicate your
33
 
# decision by deleting the provisions above and replace them with the notice
34
 
# and other provisions required by the GPL or the LGPL. If you do not delete
35
 
# the provisions above, a recipient may use your version of this file under
36
 
# the terms of any one of the MPL, the GPL or the LGPL.
37
 
#
38
 
# ***** END LICENSE BLOCK *****
39
 
var gPromptService;
40
 
var gFindBundle;
41
 
 
42
 
function nsFindInstData() {}
43
 
nsFindInstData.prototype =
44
 
{
45
 
  // set the next three attributes on your object to override the defaults
46
 
  browser : null,
47
 
 
48
 
  get rootSearchWindow() { return this._root || this.window.content; },
49
 
  set rootSearchWindow(val) { this._root = val; },
50
 
 
51
 
  get currentSearchWindow() {
52
 
    if (this._current)
53
 
      return this._current;
54
 
 
55
 
    var focusedWindow = this.window.document.commandDispatcher.focusedWindow;
56
 
    if (!focusedWindow || focusedWindow == this.window)
57
 
      focusedWindow = this.window.content;
58
 
 
59
 
    return focusedWindow;
60
 
  },
61
 
  set currentSearchWindow(val) { this._current = val; },
62
 
 
63
 
  get webBrowserFind() { return this.browser.webBrowserFind; },
64
 
 
65
 
  init : function() {
66
 
    var findInst = this.webBrowserFind;
67
 
    // set up the find to search the focussedWindow, bounded by the content window.
68
 
    var findInFrames = findInst.QueryInterface(Components.interfaces.nsIWebBrowserFindInFrames);
69
 
    findInFrames.rootSearchFrame = this.rootSearchWindow;
70
 
    findInFrames.currentSearchFrame = this.currentSearchWindow;
71
 
  
72
 
    // always search in frames for now. We could add a checkbox to the dialog for this.
73
 
    findInst.searchFrames = true;
74
 
  },
75
 
 
76
 
  window : window,
77
 
  _root : null,
78
 
  _current : null
79
 
}
80
 
 
81
 
// browser is the <browser> element
82
 
// rootSearchWindow is the window to constrain the search to (normally window.content)
83
 
// currentSearchWindow is the frame to start searching (can be, and normally, rootSearchWindow)
84
 
function findInPage(findInstData)
85
 
{
86
 
  // is the dialog up already?
87
 
  if ("findDialog" in window && window.findDialog)
88
 
    window.findDialog.focus();
89
 
  else
90
 
  {
91
 
    findInstData.init();
92
 
    window.findDialog = window.openDialog("chrome://global/content/finddialog.xul", "_blank", "chrome,resizable=no,dependent=yes", findInstData);
93
 
  }
94
 
}
95
 
 
96
 
function findAgainInPage(findInstData, reverse)
97
 
{
98
 
  if ("findDialog" in window && window.findDialog)
99
 
    window.findDialog.focus();
100
 
  else
101
 
  {
102
 
    // get the find service, which stores global find state, and init the
103
 
    // nsIWebBrowser find with it. We don't assume that there was a previous
104
 
    // Find that set this up.
105
 
    var findService = Components.classes["@mozilla.org/find/find_service;1"]
106
 
                           .getService(Components.interfaces.nsIFindService);
107
 
 
108
 
    var searchString = findService.searchString;
109
 
    if (searchString.length == 0) {
110
 
      // no previous find text
111
 
      findInPage(findInstData);
112
 
      return;
113
 
    }
114
 
 
115
 
    findInstData.init();
116
 
    var findInst = findInstData.webBrowserFind;
117
 
    findInst.searchString  = searchString;
118
 
    findInst.matchCase     = findService.matchCase;
119
 
    findInst.wrapFind      = findService.wrapFind;
120
 
    findInst.entireWord    = findService.entireWord;
121
 
    findInst.findBackwards = findService.findBackwards ^ reverse;
122
 
 
123
 
    var found = findInst.findNext();
124
 
    if (!found) {
125
 
      if (!gPromptService)
126
 
        gPromptService = Components.classes["@mozilla.org/embedcomp/prompt-service;1"].getService()
127
 
                                   .QueryInterface(Components.interfaces.nsIPromptService);                                     
128
 
      if (!gFindBundle)
129
 
        gFindBundle = document.getElementById("findBundle");
130
 
          
131
 
      gPromptService.alert(window, gFindBundle.getString("notFoundTitle"), gFindBundle.getString("notFoundWarning"));
132
 
    }      
133
 
 
134
 
    // Reset to normal value, otherwise setting can get changed in find dialog
135
 
    findInst.findBackwards = findService.findBackwards; 
136
 
  }
137
 
}
138
 
 
139
 
function canFindAgainInPage()
140
 
{
141
 
    var findService = Components.classes["@mozilla.org/find/find_service;1"]
142
 
                           .getService(Components.interfaces.nsIFindService);
143
 
    return (findService.searchString.length > 0);
144
 
}
145