| Index: content/browser/tab_contents/navigation_controller.cc
|
| diff --git a/content/browser/tab_contents/navigation_controller.cc b/content/browser/tab_contents/navigation_controller.cc
|
| index b3e80ceb799738678687026ffd67438d120282a7..3a3d1b83d069f1c8d4e8ba56766d0658ea84d6f5 100644
|
| --- a/content/browser/tab_contents/navigation_controller.cc
|
| +++ b/content/browser/tab_contents/navigation_controller.cc
|
| @@ -12,6 +12,7 @@
|
| #include "base/utf_string_conversions.h"
|
| #include "content/browser/browser_url_handler.h"
|
| #include "content/browser/child_process_security_policy.h"
|
| +#include "content/browser/content_frame.h"
|
| #include "content/browser/in_process_webkit/session_storage_namespace.h"
|
| #include "content/browser/renderer_host/render_view_host.h" // Temporary
|
| #include "content/browser/site_instance.h"
|
| @@ -230,7 +231,8 @@ NavigationEntry* NavigationController::CreateNavigationEntry(
|
| const GURL& url, const content::Referrer& referrer,
|
| content::PageTransition transition,
|
| bool is_renderer_initiated, const std::string& extra_headers,
|
| - content::BrowserContext* browser_context) {
|
| + content::BrowserContext* browser_context,
|
| + content::ContentFrame* opener) {
|
| // Allow the browser URL handler to rewrite the URL. This will, for example,
|
| // remove "view-source:" from the beginning of the URL to get the URL that
|
| // will actually be loaded. This real URL won't be shown to the user, just
|
| @@ -253,6 +255,10 @@ NavigationEntry* NavigationController::CreateNavigationEntry(
|
| entry->set_user_typed_url(url);
|
| entry->set_update_virtual_url_with_url(reverse_on_redirect);
|
| entry->set_extra_headers(extra_headers);
|
| +
|
| + if (opener)
|
| + entry->set_opener_content_frame_id(opener->id());
|
| +
|
| return entry;
|
| }
|
|
|
| @@ -508,15 +514,15 @@ void NavigationController::TransferURL(
|
| const content::Referrer& referrer,
|
| content::PageTransition transition,
|
| const std::string& extra_headers,
|
| + content::ContentFrame* opener,
|
| const GlobalRequestID& transferred_global_request_id,
|
| bool is_renderer_initiated) {
|
| // The user initiated a load, we don't need to reload anymore.
|
| needs_reload_ = false;
|
|
|
| - NavigationEntry* entry = CreateNavigationEntry(url, referrer, transition,
|
| - is_renderer_initiated,
|
| - extra_headers,
|
| - browser_context_);
|
| + NavigationEntry* entry = CreateNavigationEntry(
|
| + url, referrer, transition, is_renderer_initiated, extra_headers,
|
| + browser_context_, opener);
|
| entry->set_transferred_global_request_id(transferred_global_request_id);
|
|
|
| LoadEntry(entry);
|
| @@ -542,14 +548,16 @@ void NavigationController::LoadURLFromRenderer(
|
| const GURL& url,
|
| const content::Referrer& referrer,
|
| content::PageTransition transition,
|
| - const std::string& extra_headers) {
|
| + const std::string& extra_headers,
|
| + content::ContentFrame* opener) {
|
| // The user initiated a load, we don't need to reload anymore.
|
| needs_reload_ = false;
|
|
|
| NavigationEntry* entry = CreateNavigationEntry(url, referrer, transition,
|
| true,
|
| extra_headers,
|
| - browser_context_);
|
| + browser_context_,
|
| + opener);
|
|
|
| LoadEntry(entry);
|
| }
|
|
|