diff options
Diffstat (limited to 'chrome_frame/chrome_frame_automation.cc')
-rw-r--r-- | chrome_frame/chrome_frame_automation.cc | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/chrome_frame/chrome_frame_automation.cc b/chrome_frame/chrome_frame_automation.cc index 5775d3b..746f025 100644 --- a/chrome_frame/chrome_frame_automation.cc +++ b/chrome_frame/chrome_frame_automation.cc @@ -544,8 +544,13 @@ bool ChromeFrameAutomationClient::InitiateNavigation( return false; } + // Important: Since we will be using the referrer_ variable from a different + // thread, we need to force a new std::string buffer instance for the + // referrer_ GURL variable. Otherwise we can run into strangeness when the + // GURL is accessed and it could result in a bad URL that can cause the + // referrer to be dropped or something worse. + referrer_ = GURL(referrer.c_str()); url_ = parsed_url; - referrer_ = GURL(referrer); navigate_after_initialization_ = false; if (is_initialized()) { |