Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(19)

Side by Side Diff: chrome/browser/external_tab_container_win.cc

Issue 8784006: Replace the GURL referrer field of OpenURLParams with a content::Referrer (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: updates Created 9 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "chrome/browser/external_tab_container_win.h" 5 #include "chrome/browser/external_tab_container_win.h"
6 6
7 #include <string> 7 #include <string>
8 8
9 #include "base/bind.h" 9 #include "base/bind.h"
10 #include "base/bind_helpers.h" 10 #include "base/bind_helpers.h"
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after
44 #include "content/browser/tab_contents/provisional_load_details.h" 44 #include "content/browser/tab_contents/provisional_load_details.h"
45 #include "content/public/browser/intents_host.h" 45 #include "content/public/browser/intents_host.h"
46 #include "content/public/browser/native_web_keyboard_event.h" 46 #include "content/public/browser/native_web_keyboard_event.h"
47 #include "content/public/browser/notification_service.h" 47 #include "content/public/browser/notification_service.h"
48 #include "content/public/common/bindings_policy.h" 48 #include "content/public/common/bindings_policy.h"
49 #include "content/public/common/frame_navigate_params.h" 49 #include "content/public/common/frame_navigate_params.h"
50 #include "content/public/common/page_transition_types.h" 50 #include "content/public/common/page_transition_types.h"
51 #include "content/public/common/page_zoom.h" 51 #include "content/public/common/page_zoom.h"
52 #include "grit/generated_resources.h" 52 #include "grit/generated_resources.h"
53 #include "grit/locale_settings.h" 53 #include "grit/locale_settings.h"
54 #include "third_party/WebKit/Source/WebKit/chromium/public/platform/WebCString.h "
55 #include "third_party/WebKit/Source/WebKit/chromium/public/platform/WebString.h"
56 #include "third_party/WebKit/Source/WebKit/chromium/public/WebReferrerPolicy.h"
57 #include "third_party/WebKit/Source/WebKit/chromium/public/WebSecurityPolicy.h"
54 #include "ui/base/l10n/l10n_util.h" 58 #include "ui/base/l10n/l10n_util.h"
55 #include "ui/base/models/menu_model.h" 59 #include "ui/base/models/menu_model.h"
56 #include "ui/base/resource/resource_bundle.h" 60 #include "ui/base/resource/resource_bundle.h"
57 #include "ui/base/view_prop.h" 61 #include "ui/base/view_prop.h"
58 #include "ui/views/layout/grid_layout.h" 62 #include "ui/views/layout/grid_layout.h"
59 63
60 using content::BrowserThread; 64 using content::BrowserThread;
61 using ui::ViewProp; 65 using ui::ViewProp;
66 using WebKit::WebCString;
67 using WebKit::WebString;
68 using WebKit::WebReferrerPolicy;
69 using WebKit::WebSecurityPolicy;
62 70
63 static const char kWindowObjectKey[] = "ChromeWindowObject"; 71 static const char kWindowObjectKey[] = "ChromeWindowObject";
64 72
65 namespace { 73 namespace {
66 74
67 // Convert ui::MenuModel into a serializable form for Chrome Frame 75 // Convert ui::MenuModel into a serializable form for Chrome Frame
68 ContextMenuModel* ConvertMenuModel(const ui::MenuModel* ui_model) { 76 ContextMenuModel* ConvertMenuModel(const ui::MenuModel* ui_model) {
69 ContextMenuModel* new_model = new ContextMenuModel; 77 ContextMenuModel* new_model = new ContextMenuModel;
70 78
71 const int index_base = ui_model->GetFirstItemIndex(NULL); 79 const int index_base = ui_model->GetFirstItemIndex(NULL);
(...skipping 268 matching lines...) Expand 10 before | Expand all | Expand 10 after
340 348
341 switch (params.disposition) { 349 switch (params.disposition) {
342 case CURRENT_TAB: 350 case CURRENT_TAB:
343 case SINGLETON_TAB: 351 case SINGLETON_TAB:
344 case NEW_FOREGROUND_TAB: 352 case NEW_FOREGROUND_TAB:
345 case NEW_BACKGROUND_TAB: 353 case NEW_BACKGROUND_TAB:
346 case NEW_POPUP: 354 case NEW_POPUP:
347 case NEW_WINDOW: 355 case NEW_WINDOW:
348 case SAVE_TO_DISK: 356 case SAVE_TO_DISK:
349 if (automation_) { 357 if (automation_) {
358 GURL referrer = GURL(WebSecurityPolicy::generateReferrerHeader(
359 params.referrer.policy,
360 params.url,
361 WebString::fromUTF8(params.referrer.url.spec())).utf8());
350 automation_->Send(new AutomationMsg_OpenURL(tab_handle_, 362 automation_->Send(new AutomationMsg_OpenURL(tab_handle_,
351 params.url, 363 params.url,
352 params.referrer, 364 referrer,
353 params.disposition)); 365 params.disposition));
354 // TODO(ananta) 366 // TODO(ananta)
355 // We should populate other fields in the 367 // We should populate other fields in the
356 // ViewHostMsg_FrameNavigate_Params structure. Another option could be 368 // ViewHostMsg_FrameNavigate_Params structure. Another option could be
357 // to refactor the UpdateHistoryForNavigation function in TabContents. 369 // to refactor the UpdateHistoryForNavigation function in TabContents.
358 content::FrameNavigateParams nav_params; 370 content::FrameNavigateParams nav_params;
359 nav_params.referrer = content::Referrer( 371 nav_params.referrer = content::Referrer(referrer,
360 params.referrer, 372 params.referrer.policy);
361 WebKit::WebReferrerPolicyDefault);
362 nav_params.url = params.url; 373 nav_params.url = params.url;
363 nav_params.page_id = -1; 374 nav_params.page_id = -1;
364 nav_params.transition = content::PAGE_TRANSITION_LINK; 375 nav_params.transition = content::PAGE_TRANSITION_LINK;
365 376
366 content::LoadCommittedDetails details; 377 content::LoadCommittedDetails details;
367 details.did_replace_entry = false; 378 details.did_replace_entry = false;
368 379
369 scoped_refptr<history::HistoryAddPageArgs> add_page_args( 380 scoped_refptr<history::HistoryAddPageArgs> add_page_args(
370 tab_contents_->history_tab_helper()-> 381 tab_contents_->history_tab_helper()->
371 CreateHistoryAddPageArgs(params.url, details, nav_params)); 382 CreateHistoryAddPageArgs(params.url, details, nav_params));
(...skipping 788 matching lines...) Expand 10 before | Expand all | Expand 10 after
1160 if (params.disposition == CURRENT_TAB) { 1171 if (params.disposition == CURRENT_TAB) {
1161 DCHECK(route_all_top_level_navigations_); 1172 DCHECK(route_all_top_level_navigations_);
1162 forward_params.disposition = NEW_FOREGROUND_TAB; 1173 forward_params.disposition = NEW_FOREGROUND_TAB;
1163 } 1174 }
1164 TabContents* new_contents = 1175 TabContents* new_contents =
1165 ExternalTabContainer::OpenURLFromTab(source, forward_params); 1176 ExternalTabContainer::OpenURLFromTab(source, forward_params);
1166 // support only one navigation for a dummy tab before it is killed. 1177 // support only one navigation for a dummy tab before it is killed.
1167 ::DestroyWindow(GetNativeView()); 1178 ::DestroyWindow(GetNativeView());
1168 return new_contents; 1179 return new_contents;
1169 } 1180 }
OLDNEW
« no previous file with comments | « chrome/browser/extensions/webstore_inline_installer.cc ('k') | chrome/browser/oom_priority_manager_browsertest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698