| Index: chrome/common/extensions/docs/server2/templates/intros/devtools_inspectedWindow.html
|
| diff --git a/chrome/common/extensions/docs/server2/templates/intros/devtools_inspectedWindow.html b/chrome/common/extensions/docs/server2/templates/intros/devtools_inspectedWindow.html
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..69741a474da890eec3b060041dcce9bb16325a97
|
| --- /dev/null
|
| +++ b/chrome/common/extensions/docs/server2/templates/intros/devtools_inspectedWindow.html
|
| @@ -0,0 +1,97 @@
|
| +<p>
|
| +Use <code>chrome.devtools.inspectedWindow</code>
|
| +to interact with the inspected window:
|
| +obtain the tab ID for the inspected page,
|
| +evaluate the code in the context of inspected window,
|
| +reload the page,
|
| +or obtain the list of resources within the page.
|
| +</p><p>
|
| +See <a href="devtools.html">DevTools APIs summary</a> for
|
| +general introduction to using Developer Tools APIs.
|
| +</p>
|
| +
|
| +<h2>Overview</h2>
|
| +<p>
|
| +The <a href="#property-tabId"><code>tabId</code></a> property
|
| +provides the tab identifier that you can use with the
|
| +<a href="tabs.html"><code>chrome.tabs.*</code></a> API calls.
|
| +However, please note that <code>chrome.tabs.*</code> API is not
|
| +exposed to the Developer Tools extension pages due to security considerations
|
| +— you will need to pass the tab ID to the background page and invoke
|
| +the <code>chrome.tabs.*</code> API functions from there.
|
| +</p>
|
| +<p>
|
| +The <code>eval()</code> method provides the ability for extensions to execute
|
| +JavaScript code in the context of the main frame of the inspected page.
|
| +This method is powerful when used in the right context
|
| +and dangerous when used inappropriately.
|
| +Use the <code>chrome.tabs.executeScript()</code> method
|
| +unless you need the specific functionality
|
| +that the <code>eval()</code> method provides.
|
| +</p>
|
| +<p>Here are the main differences between the
|
| +<code>eval()</code> and <code>chrome.tabs.executeScript()</code> methods:
|
| +</p><ul>
|
| +<li>The <code>eval()</code> method does not
|
| +use an isolated world for the code being evaluated, so the JavaScript state
|
| +of the inspected window is accessible to the code.
|
| +Use this method when access to the JavaScript state of the inspected page
|
| +is required.
|
| +</li><li>
|
| +The execution context of the code being evaluated includes the
|
| +<a href="http://code.google.com/chrome/devtools/docs/console.html">Developer
|
| +Tools console API</a>.
|
| +For example,
|
| +the code can use <code>inspect()</code> and <code>$0</code>.
|
| +</li><li>
|
| +The evaluated code may return a value that is passed to the extension callback.
|
| +The returned value has to be a valid JSON object (it may contain only
|
| +primitive JavaScript types and acyclic references to other JSON
|
| +objects).
|
| +
|
| +<em>Please observe extra care while processing the data received from the
|
| +inspected page — the execution context is essentially controlled by the
|
| +inspected page; a malicious page may affect the data being returned to the
|
| +extension.</em>
|
| +</li></ul>
|
| +<p class="caution">
|
| +<strong>Important:</strong>
|
| +Due to the security considerations explained above, the
|
| +<a href="tabs.html#method-executeScript"><code
|
| +>chrome.tabs.executeScript()</code></a> method is the preferred way for an
|
| +extension to access DOM data of the inspected page in cases where the access to
|
| +JavaScript state of the inspected page is not required.</em>
|
| +</p><p>
|
| +The <code>reload()</code> method may be used to reload the inspected page.
|
| +Additionally, the caller can specify an override for the user agent string,
|
| +a script that will be injected early upon page load, and an option to force
|
| +reload of cached resources.
|
| +</p><p>
|
| +Use the <code>getResources()</code> call and the <code>onResourceContent</code>
|
| +event to obtain the list of resources (documents, stylesheets, scripts, images
|
| +etc) within the inspected page. The <code>getContent()</code> and <code
|
| +>setContent()</code> methods of the <code>Resource</code> class along with the
|
| +<code>onResourceContentCommitted</code> event may be used to support
|
| +modification of the resource content, for example, by an external editor.
|
| +</p>
|
| +
|
| +<h2 id="overview-examples">Examples</h2>
|
| +<p>The following code checks for the version of jQuery used by the inspected
|
| +page:
|
| +
|
| +<pre>
|
| +chrome.devtools.inspectedWindow.eval(
|
| + "jQuery.fn.jquery",
|
| + function(result, isException) {
|
| + if (isException)
|
| + console.log("the page is not using jQuery");
|
| + else
|
| + console.log("The page is using jQuery v" + result);
|
| + }
|
| +);
|
| +</pre>
|
| +
|
| +<p>
|
| +You can find more examples that use Developer Tools APIs in
|
| +<a href="samples.html#devtools">Samples</a>.
|
| +</p>
|
|
|