Initializing the browser property of the Bugzilla class takes too long
authorojan@chromium.org <ojan@chromium.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Wed, 25 Jan 2012 02:13:51 +0000 (02:13 +0000)
committerojan@chromium.org <ojan@chromium.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Wed, 25 Jan 2012 02:13:51 +0000 (02:13 +0000)
https://bugs.webkit.org/show_bug.cgi?id=76960

Reviewed by Adam Barth.

Lazily initialize it. This saves ~150ms on a no-op run-webkit-tests call
on my Mac Pro.

* Scripts/webkitpy/common/net/bugzilla/bugzilla.py:
(Bugzilla.__init__):
(Bugzilla._get_browser):
(Bugzilla):
(Bugzilla._set_browser):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@105842 268f45cc-cd09-0410-ab3c-d52691b4dbfc

Tools/ChangeLog
Tools/Scripts/webkitpy/common/net/bugzilla/bugzilla.py

index 6530fb1..c85bfea 100644 (file)
@@ -1,3 +1,19 @@
+2012-01-24  Ojan Vafai  <ojan@chromium.org>
+
+        Initializing the browser property of the Bugzilla class takes too long
+        https://bugs.webkit.org/show_bug.cgi?id=76960
+
+        Reviewed by Adam Barth.
+
+        Lazily initialize it. This saves ~150ms on a no-op run-webkit-tests call
+        on my Mac Pro.
+
+        * Scripts/webkitpy/common/net/bugzilla/bugzilla.py:
+        (Bugzilla.__init__):
+        (Bugzilla._get_browser):
+        (Bugzilla):
+        (Bugzilla._set_browser):
+
 2012-01-24  Mark Rowe  <mrowe@apple.com>
 
         Death to JavaScriptGlue.
index 4398f88..a32e86e 100644 (file)
@@ -265,11 +265,20 @@ class Bugzilla(object):
         self.committers = committers
         self.cached_quips = []
         self.edit_user_parser = EditUsersParser()
+        self._browser = None
 
-        from webkitpy.thirdparty.autoinstalled.mechanize import Browser
-        self.browser = Browser()
-        # Ignore bugs.webkit.org/robots.txt until we fix it to allow this script.
-        self.browser.set_handle_robots(False)
+    def _get_browser(self):
+        if not self._browser:
+            from webkitpy.thirdparty.autoinstalled.mechanize import Browser
+            self._browser = Browser()
+            # Ignore bugs.webkit.org/robots.txt until we fix it to allow this script.
+            self._browser.set_handle_robots(False)
+        return self._browser
+
+    def _set_browser(self, value):
+        self._browser = value
+
+    browser = property(_get_browser, _set_browser)
 
     def fetch_user(self, user_id):
         self.authenticate()