diff options
author | jkarlin@chromium.org <jkarlin@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2014-03-19 22:00:49 +0000 |
---|---|---|
committer | jkarlin@chromium.org <jkarlin@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2014-03-19 22:00:49 +0000 |
commit | 1bad893173b5a95b03e1b498694b4eea85480caa (patch) | |
tree | cbf173df27419210eb76d1bd24343ea3153d8447 /content/browser/resources | |
parent | 052b53d7871af81837dcdfada6835e1bf3850d15 (diff) | |
download | chromium_src-1bad893173b5a95b03e1b498694b4eea85480caa.zip chromium_src-1bad893173b5a95b03e1b498694b4eea85480caa.tar.gz chromium_src-1bad893173b5a95b03e1b498694b4eea85480caa.tar.bz2 |
Stop accumulating event handlers for the serviceworker-internals buttons.
Each time you hit "start" or "stop" etc. in chrome://serviceworker-internals
the registration process is rerun, adding an addEventListener to each button
for each existing callback, causing a quadratic increase in event listeners.
This CL only allows the event to be registered once per button.
BUG=
Review URL: https://codereview.chromium.org/204573003
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@258118 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'content/browser/resources')
-rw-r--r-- | content/browser/resources/service_worker/serviceworker_internals.js | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/content/browser/resources/service_worker/serviceworker_internals.js b/content/browser/resources/service_worker/serviceworker_internals.js index 1f81379..cacbd9c 100644 --- a/content/browser/resources/service_worker/serviceworker_internals.js +++ b/content/browser/resources/service_worker/serviceworker_internals.js @@ -73,7 +73,10 @@ cr.define('serviceworker', function() { var handler = commandHandler(COMMANDS[i]); var links = container.querySelectorAll('button.' + COMMANDS[i]); for (var j = 0; j < links.length; ++j) { - links[j].addEventListener('click', handler, false); + if (!links[j].hasClickEvent) { + links[j].addEventListener('click', handler, false); + links[j].hasClickEvent = true; + } } } } |