OLD | NEW |
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 112 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
123 } | 123 } |
124 | 124 |
125 bool ExternalTabContainer::Init(Profile* profile, | 125 bool ExternalTabContainer::Init(Profile* profile, |
126 HWND parent, | 126 HWND parent, |
127 const gfx::Rect& bounds, | 127 const gfx::Rect& bounds, |
128 DWORD style, | 128 DWORD style, |
129 bool load_requests_via_automation, | 129 bool load_requests_via_automation, |
130 bool handle_top_level_requests, | 130 bool handle_top_level_requests, |
131 TabContentsWrapper* existing_contents, | 131 TabContentsWrapper* existing_contents, |
132 const GURL& initial_url, | 132 const GURL& initial_url, |
133 const GURL& referrer, | 133 const content::Referrer& referrer, |
134 bool infobars_enabled, | 134 bool infobars_enabled, |
135 bool route_all_top_level_navigations) { | 135 bool route_all_top_level_navigations) { |
136 if (IsWindow()) { | 136 if (IsWindow()) { |
137 NOTREACHED(); | 137 NOTREACHED(); |
138 return false; | 138 return false; |
139 } | 139 } |
140 | 140 |
141 load_requests_via_automation_ = load_requests_via_automation; | 141 load_requests_via_automation_ = load_requests_via_automation; |
142 handle_top_level_requests_ = handle_top_level_requests; | 142 handle_top_level_requests_ = handle_top_level_requests; |
143 route_all_top_level_navigations_ = route_all_top_level_navigations; | 143 route_all_top_level_navigations_ = route_all_top_level_navigations; |
(...skipping 180 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
324 ExternalTabContainer* tab_container = NULL; | 324 ExternalTabContainer* tab_container = NULL; |
325 if (native_window) { | 325 if (native_window) { |
326 tab_container = reinterpret_cast<ExternalTabContainer*>( | 326 tab_container = reinterpret_cast<ExternalTabContainer*>( |
327 ViewProp::GetValue(native_window, kWindowObjectKey)); | 327 ViewProp::GetValue(native_window, kWindowObjectKey)); |
328 } | 328 } |
329 return tab_container; | 329 return tab_container; |
330 } | 330 } |
331 //////////////////////////////////////////////////////////////////////////////// | 331 //////////////////////////////////////////////////////////////////////////////// |
332 // ExternalTabContainer, TabContentsDelegate implementation: | 332 // ExternalTabContainer, TabContentsDelegate implementation: |
333 | 333 |
334 // TODO(adriansc): Remove this method once refactoring changed all call sites. | |
335 TabContents* ExternalTabContainer::OpenURLFromTab( | |
336 TabContents* source, | |
337 const GURL& url, | |
338 const GURL& referrer, | |
339 WindowOpenDisposition disposition, | |
340 content::PageTransition transition) { | |
341 return OpenURLFromTab(source, | |
342 OpenURLParams(url, referrer, disposition, transition, | |
343 false)); | |
344 } | |
345 | |
346 TabContents* ExternalTabContainer::OpenURLFromTab(TabContents* source, | 334 TabContents* ExternalTabContainer::OpenURLFromTab(TabContents* source, |
347 const OpenURLParams& params) { | 335 const OpenURLParams& params) { |
348 if (pending()) { | 336 if (pending()) { |
349 pending_open_url_requests_.push_back(params); | 337 pending_open_url_requests_.push_back(params); |
350 return NULL; | 338 return NULL; |
351 } | 339 } |
352 | 340 |
353 switch (params.disposition) { | 341 switch (params.disposition) { |
354 case CURRENT_TAB: | 342 case CURRENT_TAB: |
355 case SINGLETON_TAB: | 343 case SINGLETON_TAB: |
(...skipping 668 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1024 tab_contents_->render_view_host(), | 1012 tab_contents_->render_view_host(), |
1025 DEVTOOLS_TOGGLE_ACTION_INSPECT); | 1013 DEVTOOLS_TOGGLE_ACTION_INSPECT); |
1026 break; | 1014 break; |
1027 default: | 1015 default: |
1028 NOTREACHED() << "Unsupported accelerator: " << command_id; | 1016 NOTREACHED() << "Unsupported accelerator: " << command_id; |
1029 return false; | 1017 return false; |
1030 } | 1018 } |
1031 return true; | 1019 return true; |
1032 } | 1020 } |
1033 | 1021 |
1034 void ExternalTabContainer::Navigate(const GURL& url, const GURL& referrer) { | 1022 void ExternalTabContainer::Navigate(const GURL& url, |
| 1023 const content::Referrer& referrer) { |
1035 if (!tab_contents_.get()) { | 1024 if (!tab_contents_.get()) { |
1036 NOTREACHED(); | 1025 NOTREACHED(); |
1037 return; | 1026 return; |
1038 } | 1027 } |
1039 | 1028 |
1040 TRACE_EVENT_BEGIN_ETW("ExternalTabContainer::Navigate", 0, url.spec()); | 1029 TRACE_EVENT_BEGIN_ETW("ExternalTabContainer::Navigate", 0, url.spec()); |
1041 | 1030 |
1042 tab_contents_->controller().LoadURL(url, referrer, | 1031 tab_contents_->controller().LoadURL(url, referrer, |
1043 content::PAGE_TRANSITION_START_PAGE, | 1032 content::PAGE_TRANSITION_START_PAGE, |
1044 std::string()); | 1033 std::string()); |
(...skipping 109 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1154 AutomationProvider* automation, | 1143 AutomationProvider* automation, |
1155 AutomationResourceMessageFilter* filter) | 1144 AutomationResourceMessageFilter* filter) |
1156 : ExternalTabContainer(automation, filter) { | 1145 : ExternalTabContainer(automation, filter) { |
1157 } | 1146 } |
1158 | 1147 |
1159 TemporaryPopupExternalTabContainer::~TemporaryPopupExternalTabContainer() { | 1148 TemporaryPopupExternalTabContainer::~TemporaryPopupExternalTabContainer() { |
1160 DVLOG(1) << __FUNCTION__; | 1149 DVLOG(1) << __FUNCTION__; |
1161 } | 1150 } |
1162 | 1151 |
1163 TabContents* TemporaryPopupExternalTabContainer::OpenURLFromTab( | 1152 TabContents* TemporaryPopupExternalTabContainer::OpenURLFromTab( |
1164 TabContents* source, const GURL& url, const GURL& referrer, | |
1165 WindowOpenDisposition disposition, content::PageTransition transition) { | |
1166 return OpenURLFromTab(source, | |
1167 OpenURLParams(url, referrer, disposition, transition, | |
1168 false)); | |
1169 } | |
1170 | |
1171 TabContents* TemporaryPopupExternalTabContainer::OpenURLFromTab( | |
1172 TabContents* source, | 1153 TabContents* source, |
1173 const OpenURLParams& params) { | 1154 const OpenURLParams& params) { |
1174 if (!automation_) | 1155 if (!automation_) |
1175 return NULL; | 1156 return NULL; |
1176 | 1157 |
1177 OpenURLParams forward_params = params; | 1158 OpenURLParams forward_params = params; |
1178 if (params.disposition == CURRENT_TAB) { | 1159 if (params.disposition == CURRENT_TAB) { |
1179 DCHECK(route_all_top_level_navigations_); | 1160 DCHECK(route_all_top_level_navigations_); |
1180 forward_params.disposition = NEW_FOREGROUND_TAB; | 1161 forward_params.disposition = NEW_FOREGROUND_TAB; |
1181 } | 1162 } |
1182 TabContents* new_contents = | 1163 TabContents* new_contents = |
1183 ExternalTabContainer::OpenURLFromTab(source, forward_params); | 1164 ExternalTabContainer::OpenURLFromTab(source, forward_params); |
1184 // support only one navigation for a dummy tab before it is killed. | 1165 // support only one navigation for a dummy tab before it is killed. |
1185 ::DestroyWindow(GetNativeView()); | 1166 ::DestroyWindow(GetNativeView()); |
1186 return new_contents; | 1167 return new_contents; |
1187 } | 1168 } |
OLD | NEW |