15821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Copyright (c) 2012 The Chromium Authors. All rights reserved. 25821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be 35821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// found in the LICENSE file. 45821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 55821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// The function below is executed in the context of the inspected page. 65821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)var page_getProperties = function() { 75821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) var data = window.jQuery && $0 ? jQuery.data($0) : {}; 85821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Make a shallow copy with a null prototype, so that sidebar does not 95821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // expose prototype. 105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) var props = Object.getOwnPropertyNames(data); 115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) var copy = { __proto__: null }; 125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) for (var i = 0; i < props.length; ++i) 135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) copy[props[i]] = data[props[i]]; 145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return copy; 155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)chrome.devtools.panels.elements.createSidebarPane( 185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) "jQuery Properties", 195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) function(sidebar) { 205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) function updateElementProperties() { 215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) sidebar.setExpression("(" + page_getProperties.toString() + ")()"); 225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) } 235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) updateElementProperties(); 245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) chrome.devtools.panels.elements.onSelectionChanged.addListener( 255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) updateElementProperties); 265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}); 27