My favorites | Sign in
Logo
             
New issue | Search
for
| Advanced search | Search tips
Issue 22994: In Chrome Frame, the first time you click a link, the referrer is empty
1 person starred this issue and may be notified of changes. Back to list
 
Reported by jackson@chromium.org, Sep 24, 2009
What steps will reproduce the problem?
1. Visit 
https://crypto.stanford.edu/~collinj/test/chromeframe/referrer.html
2. Referrer is displayed.
3. Click "self link"
4. Referrer is displayed
5. Click "self link" again
6. Referrer is displayed again

What is the expected output?

Referrer "https://crypto.stanford.edu/~collinj/test/chromeframe/referrer.ht
ml" appears on steps 4 and 6. It is blank on step 2.

What do you see instead?

Referrer "https://crypto.stanford.edu/~collinj/test/chromeframe/referrer.ht
ml" appears on step 6. It is blank on step 2 and step 4.
Comment 1 by jackson@chromium.org, Sep 24, 2009
(No comment was entered for this change.)
Owner: ---
Comment 2 by mikesmith@chromium.org, Oct 09, 2009
(No comment was entered for this change.)
Status: Assigned
Owner: a...@chromium.org
Cc: su...@chromium.org
Labels: Mstone-4 ReleaseBlock-Beta Security
Comment 3 by ananta@chromium.org, Oct 14, 2009
(No comment was entered for this change.)
Owner: ana...@chromium.org
Comment 4 by bugdroid1@chromium.org, Oct 19, 2009
The following revision refers to this bug:
    http://src.chromium.org/viewvc/chrome?view=rev&revision=29420 

------------------------------------------------------------------------
r29420 | ananta@chromium.org | 2009-10-19 10:34:57 -0700 (Mon, 19 Oct 2009) | 17 lines
Changed paths:
   M http://src.chromium.org/viewvc/chrome/trunk/src/chrome/browser/automation/automation_provider.cc?r1=29420&r2=29419
   M http://src.chromium.org/viewvc/chrome/trunk/src/chrome/browser/automation/automation_provider.h?r1=29420&r2=29419
   M http://src.chromium.org/viewvc/chrome/trunk/src/chrome/browser/extensions/extension_uitest.cc?r1=29420&r2=29419
   M http://src.chromium.org/viewvc/chrome/trunk/src/chrome/browser/external_tab_container.cc?r1=29420&r2=29419
   M http://src.chromium.org/viewvc/chrome/trunk/src/chrome/renderer/render_view.cc?r1=29420&r2=29419
   M http://src.chromium.org/viewvc/chrome/trunk/src/chrome/test/automation/automation_messages_internal.h?r1=29420&r2=29419
   M http://src.chromium.org/viewvc/chrome/trunk/src/chrome/test/automation/automation_proxy_uitest.cc?r1=29420&r2=29419
   M http://src.chromium.org/viewvc/chrome/trunk/src/chrome/test/automation/tab_proxy.cc?r1=29420&r2=29419
   M http://src.chromium.org/viewvc/chrome/trunk/src/chrome/test/automation/tab_proxy.h?r1=29420&r2=29419
   M http://src.chromium.org/viewvc/chrome/trunk/src/chrome_frame/bho.cc?r1=29420&r2=29419
   M http://src.chromium.org/viewvc/chrome/trunk/src/chrome_frame/bho.h?r1=29420&r2=29419
   M http://src.chromium.org/viewvc/chrome/trunk/src/chrome_frame/chrome_active_document.cc?r1=29420&r2=29419
   M http://src.chromium.org/viewvc/chrome/trunk/src/chrome_frame/chrome_active_document.h?r1=29420&r2=29419
   M http://src.chromium.org/viewvc/chrome/trunk/src/chrome_frame/chrome_frame_activex_base.h?r1=29420&r2=29419
   M http://src.chromium.org/viewvc/chrome/trunk/src/chrome_frame/chrome_frame_automation.cc?r1=29420&r2=29419
   M http://src.chromium.org/viewvc/chrome/trunk/src/chrome_frame/chrome_frame_automation.h?r1=29420&r2=29419
   M http://src.chromium.org/viewvc/chrome/trunk/src/chrome_frame/chrome_frame_delegate.h?r1=29420&r2=29419
   M http://src.chromium.org/viewvc/chrome/trunk/src/chrome_frame/chrome_frame_npapi.cc?r1=29420&r2=29419
   M http://src.chromium.org/viewvc/chrome/trunk/src/chrome_frame/test/chrome_frame_automation_mock.h?r1=29420&r2=29419
   M http://src.chromium.org/viewvc/chrome/trunk/src/chrome_frame/test/chrome_frame_unittests.cc?r1=29420&r2=29419
   A http://src.chromium.org/viewvc/chrome/trunk/src/chrome_frame/test/data/referrer_frame.html
   A http://src.chromium.org/viewvc/chrome/trunk/src/chrome_frame/test/data/referrer_main.html

When Chrome hands off a URL to be opened by the external host by the ViewHostMsg_OpenURL IPC, it
needs to pass the referrer as well. The Chrome fixes in this CL are mostly related to passing the
HTTP referer off to the browser and from there to the ExternalTabContainer to ChromeFrame and back.

The ChromeFrame changes are basically around the same lines with one exception. When we handle the
AutomationMsg_OpenURL IPC in the activex and the active document we pass the referer if applicable
to the WebBrowser2::Navigate2 interface, which is then read by the BHO in BeforeNavigate2. We then
save away an AddRef'ed BHO pointer in TLS which is then referenced by the Active document for reading
the referer and passing it off to Chrome in the NavigateInExternalTab message.

Added a unit test in ChromeFrame which tests this case.

This fixes http://code.google.com/p/chromium/issues/detail?id=22994

Bug=22994

Review URL: http://codereview.chromium.org/274071
------------------------------------------------------------------------

Comment 5 by ananta@chromium.org, Oct 19, 2009
(No comment was entered for this change.)
Status: Fixed
Sign in to add a comment

Powered by Google Project Hosting