diff options
author | mpcomplete@chromium.org <mpcomplete@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-07-14 22:14:01 +0000 |
---|---|---|
committer | mpcomplete@chromium.org <mpcomplete@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-07-14 22:14:01 +0000 |
commit | b6ce15971b4139103635132bb9c9d3cd2224973e (patch) | |
tree | 07ac0724aed49c2adb8d8c47aadeb23a34d3e324 /webkit/glue/webframeloaderclient_impl.cc | |
parent | 95c3c59d275042225cda4589525cb279f66f1f2c (diff) | |
download | chromium_src-b6ce15971b4139103635132bb9c9d3cd2224973e.zip chromium_src-b6ce15971b4139103635132bb9c9d3cd2224973e.tar.gz chromium_src-b6ce15971b4139103635132bb9c9d3cd2224973e.tar.bz2 |
Chrome-side of fixes for content-script messaging.
This change adds registration of content scripts, parented to a frame's
context. When a frame's context goes away, we unregister it and any content
script contexts for it.
There's a corresponding webkit change that lets us know when a content script
context is created. Filed upstream as
https://bugs.webkit.org/show_bug.cgi?id=27104.
BUG=16228
TEST=install an extension with a content script that communicates with a parent
process. Messages should be sendable both ways.
Review URL: http://codereview.chromium.org/155309
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@20677 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'webkit/glue/webframeloaderclient_impl.cc')
-rw-r--r-- | webkit/glue/webframeloaderclient_impl.cc | 15 |
1 files changed, 11 insertions, 4 deletions
diff --git a/webkit/glue/webframeloaderclient_impl.cc b/webkit/glue/webframeloaderclient_impl.cc index c5d4901..19f1096 100644 --- a/webkit/glue/webframeloaderclient_impl.cc +++ b/webkit/glue/webframeloaderclient_impl.cc @@ -130,18 +130,25 @@ void WebFrameLoaderClient::documentElementAvailable() { d->DocumentElementAvailable(webframe_); } -void WebFrameLoaderClient::didCreateScriptContext() { +void WebFrameLoaderClient::didCreateScriptContextForFrame() { WebViewImpl* webview = webframe_->GetWebViewImpl(); WebViewDelegate* d = webview->delegate(); if (d) - d->DidCreateScriptContext(webframe_); + d->DidCreateScriptContextForFrame(webframe_); } -void WebFrameLoaderClient::didDestroyScriptContext() { +void WebFrameLoaderClient::didDestroyScriptContextForFrame() { WebViewImpl* webview = webframe_->GetWebViewImpl(); WebViewDelegate* d = webview->delegate(); if (d) - d->DidDestroyScriptContext(webframe_); + d->DidDestroyScriptContextForFrame(webframe_); +} + +void WebFrameLoaderClient::didCreateIsolatedScriptContext() { + WebViewImpl* webview = webframe_->GetWebViewImpl(); + WebViewDelegate* d = webview->delegate(); + if (d) + d->DidCreateIsolatedScriptContext(webframe_); } void WebFrameLoaderClient::didPerformFirstNavigation() const { |