| Index: chrome_frame/chrome_active_document.cc
|
| ===================================================================
|
| --- chrome_frame/chrome_active_document.cc (revision 52547)
|
| +++ chrome_frame/chrome_active_document.cc (working copy)
|
| @@ -264,7 +264,16 @@
|
| return E_INVALIDARG;
|
| }
|
|
|
| - const std::string& referrer = mgr ? mgr->referrer() : EmptyString();
|
| + std::string referrer = mgr ? mgr->referrer() : EmptyString();
|
| + // With CTransaction patch we have more robust way to grab the referrer for
|
| + // each top-level-switch-to-CF request by peeking at our sniffing data
|
| + // object that lives inside the bind context.
|
| + if (g_patch_helper.state() == PatchHelper::PATCH_PROTOCOL && info) {
|
| + scoped_refptr<ProtData> prot_data = info->get_prot_data();
|
| + if (prot_data)
|
| + referrer = prot_data->referrer();
|
| + }
|
| +
|
| if (!LaunchUrl(url, referrer, is_new_navigation)) {
|
| NOTREACHED() << __FUNCTION__ << " Failed to launch url:" << url;
|
| return E_INVALIDARG;
|
|
|