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/automation/automation_provider.h" | 5 #include "chrome/browser/automation/automation_provider.h" |
6 | 6 |
7 #include "base/debug/trace_event.h" | 7 #include "base/debug/trace_event.h" |
8 #include "base/json/json_reader.h" | 8 #include "base/json/json_reader.h" |
9 #include "base/utf_string_conversions.h" | 9 #include "base/utf_string_conversions.h" |
10 #include "chrome/browser/automation/automation_browser_tracker.h" | 10 #include "chrome/browser/automation/automation_browser_tracker.h" |
(...skipping 213 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
224 } else { | 224 } else { |
225 AutomationMsg_WindowDrag::WriteReplyParams(reply_message, false); | 225 AutomationMsg_WindowDrag::WriteReplyParams(reply_message, false); |
226 Send(reply_message); | 226 Send(reply_message); |
227 } | 227 } |
228 } | 228 } |
229 | 229 |
230 void AutomationProvider::CreateExternalTab( | 230 void AutomationProvider::CreateExternalTab( |
231 const ExternalTabSettings& settings, | 231 const ExternalTabSettings& settings, |
232 gfx::NativeWindow* tab_container_window, gfx::NativeWindow* tab_window, | 232 gfx::NativeWindow* tab_container_window, gfx::NativeWindow* tab_window, |
233 int* tab_handle, int* session_id) { | 233 int* tab_handle, int* session_id) { |
234 TRACE_EVENT_BEGIN("AutomationProvider::CreateExternalTab", 0, ""); | 234 TRACE_EVENT_BEGIN_ETW("AutomationProvider::CreateExternalTab", 0, ""); |
235 | 235 |
236 *tab_handle = 0; | 236 *tab_handle = 0; |
237 *tab_container_window = NULL; | 237 *tab_container_window = NULL; |
238 *tab_window = NULL; | 238 *tab_window = NULL; |
239 *session_id = -1; | 239 *session_id = -1; |
240 scoped_refptr<ExternalTabContainer> external_tab_container = | 240 scoped_refptr<ExternalTabContainer> external_tab_container = |
241 new ExternalTabContainer(this, automation_resource_message_filter_); | 241 new ExternalTabContainer(this, automation_resource_message_filter_); |
242 | 242 |
243 Profile* profile = settings.is_incognito ? | 243 Profile* profile = settings.is_incognito ? |
244 profile_->GetOffTheRecordProfile() : profile_; | 244 profile_->GetOffTheRecordProfile() : profile_; |
245 | 245 |
246 // When the ExternalTabContainer window is created we grab a reference on it | 246 // When the ExternalTabContainer window is created we grab a reference on it |
247 // which is released when the window is destroyed. | 247 // which is released when the window is destroyed. |
248 external_tab_container->Init(profile, settings.parent, settings.dimensions, | 248 external_tab_container->Init(profile, settings.parent, settings.dimensions, |
249 settings.style, settings.load_requests_via_automation, | 249 settings.style, settings.load_requests_via_automation, |
250 settings.handle_top_level_requests, NULL, settings.initial_url, | 250 settings.handle_top_level_requests, NULL, settings.initial_url, |
251 settings.referrer, settings.infobars_enabled, | 251 settings.referrer, settings.infobars_enabled, |
252 settings.route_all_top_level_navigations); | 252 settings.route_all_top_level_navigations); |
253 | 253 |
254 if (AddExternalTab(external_tab_container)) { | 254 if (AddExternalTab(external_tab_container)) { |
255 TabContents* tab_contents = external_tab_container->tab_contents(); | 255 TabContents* tab_contents = external_tab_container->tab_contents(); |
256 *tab_handle = external_tab_container->tab_handle(); | 256 *tab_handle = external_tab_container->tab_handle(); |
257 *tab_container_window = external_tab_container->GetNativeView(); | 257 *tab_container_window = external_tab_container->GetNativeView(); |
258 *tab_window = tab_contents->GetNativeView(); | 258 *tab_window = tab_contents->GetNativeView(); |
259 *session_id = tab_contents->controller().session_id().id(); | 259 *session_id = tab_contents->controller().session_id().id(); |
260 } else { | 260 } else { |
261 external_tab_container->Uninitialize(); | 261 external_tab_container->Uninitialize(); |
262 } | 262 } |
263 | 263 |
264 TRACE_EVENT_END("AutomationProvider::CreateExternalTab", 0, ""); | 264 TRACE_EVENT_END_ETW("AutomationProvider::CreateExternalTab", 0, ""); |
265 } | 265 } |
266 | 266 |
267 bool AutomationProvider::AddExternalTab(ExternalTabContainer* external_tab) { | 267 bool AutomationProvider::AddExternalTab(ExternalTabContainer* external_tab) { |
268 DCHECK(external_tab != NULL); | 268 DCHECK(external_tab != NULL); |
269 | 269 |
270 TabContents* tab_contents = external_tab->tab_contents(); | 270 TabContents* tab_contents = external_tab->tab_contents(); |
271 if (tab_contents) { | 271 if (tab_contents) { |
272 int tab_handle = tab_tracker_->Add(&tab_contents->controller()); | 272 int tab_handle = tab_tracker_->Add(&tab_contents->controller()); |
273 external_tab->SetTabHandle(tab_handle); | 273 external_tab->SetTabHandle(tab_handle); |
274 return true; | 274 return true; |
(...skipping 89 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
364 } | 364 } |
365 | 365 |
366 void AutomationProvider::ConnectExternalTab( | 366 void AutomationProvider::ConnectExternalTab( |
367 uint64 cookie, | 367 uint64 cookie, |
368 bool allow, | 368 bool allow, |
369 gfx::NativeWindow parent_window, | 369 gfx::NativeWindow parent_window, |
370 gfx::NativeWindow* tab_container_window, | 370 gfx::NativeWindow* tab_container_window, |
371 gfx::NativeWindow* tab_window, | 371 gfx::NativeWindow* tab_window, |
372 int* tab_handle, | 372 int* tab_handle, |
373 int* session_id) { | 373 int* session_id) { |
374 TRACE_EVENT_BEGIN("AutomationProvider::ConnectExternalTab", 0, ""); | 374 TRACE_EVENT_BEGIN_ETW("AutomationProvider::ConnectExternalTab", 0, ""); |
375 | 375 |
376 *tab_handle = 0; | 376 *tab_handle = 0; |
377 *tab_container_window = NULL; | 377 *tab_container_window = NULL; |
378 *tab_window = NULL; | 378 *tab_window = NULL; |
379 *session_id = -1; | 379 *session_id = -1; |
380 | 380 |
381 scoped_refptr<ExternalTabContainer> external_tab_container = | 381 scoped_refptr<ExternalTabContainer> external_tab_container = |
382 ExternalTabContainer::RemovePendingTab(static_cast<uintptr_t>(cookie)); | 382 ExternalTabContainer::RemovePendingTab(static_cast<uintptr_t>(cookie)); |
383 if (!external_tab_container.get()) { | 383 if (!external_tab_container.get()) { |
384 NOTREACHED(); | 384 NOTREACHED(); |
385 return; | 385 return; |
386 } | 386 } |
387 | 387 |
388 if (allow && AddExternalTab(external_tab_container)) { | 388 if (allow && AddExternalTab(external_tab_container)) { |
389 external_tab_container->Reinitialize(this, | 389 external_tab_container->Reinitialize(this, |
390 automation_resource_message_filter_, | 390 automation_resource_message_filter_, |
391 parent_window); | 391 parent_window); |
392 TabContents* tab_contents = external_tab_container->tab_contents(); | 392 TabContents* tab_contents = external_tab_container->tab_contents(); |
393 *tab_handle = external_tab_container->tab_handle(); | 393 *tab_handle = external_tab_container->tab_handle(); |
394 *tab_container_window = external_tab_container->GetNativeView(); | 394 *tab_container_window = external_tab_container->GetNativeView(); |
395 *tab_window = tab_contents->GetNativeView(); | 395 *tab_window = tab_contents->GetNativeView(); |
396 *session_id = tab_contents->controller().session_id().id(); | 396 *session_id = tab_contents->controller().session_id().id(); |
397 } else { | 397 } else { |
398 external_tab_container->Uninitialize(); | 398 external_tab_container->Uninitialize(); |
399 } | 399 } |
400 | 400 |
401 TRACE_EVENT_END("AutomationProvider::ConnectExternalTab", 0, ""); | 401 TRACE_EVENT_END_ETW("AutomationProvider::ConnectExternalTab", 0, ""); |
402 } | 402 } |
403 | 403 |
404 void AutomationProvider::OnBrowserMoved(int tab_handle) { | 404 void AutomationProvider::OnBrowserMoved(int tab_handle) { |
405 ExternalTabContainer* external_tab = GetExternalTabForHandle(tab_handle); | 405 ExternalTabContainer* external_tab = GetExternalTabForHandle(tab_handle); |
406 if (external_tab) { | 406 if (external_tab) { |
407 external_tab->WindowMoved(); | 407 external_tab->WindowMoved(); |
408 } else { | 408 } else { |
409 DLOG(WARNING) << | 409 DLOG(WARNING) << |
410 "AutomationProvider::OnBrowserMoved called with invalid tab handle."; | 410 "AutomationProvider::OnBrowserMoved called with invalid tab handle."; |
411 } | 411 } |
(...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
456 | 456 |
457 void AutomationProvider::OnSetZoomLevel(int handle, int zoom_level) { | 457 void AutomationProvider::OnSetZoomLevel(int handle, int zoom_level) { |
458 if (tab_tracker_->ContainsHandle(handle)) { | 458 if (tab_tracker_->ContainsHandle(handle)) { |
459 NavigationController* tab = tab_tracker_->GetResource(handle); | 459 NavigationController* tab = tab_tracker_->GetResource(handle); |
460 if (tab->tab_contents() && tab->tab_contents()->render_view_host()) { | 460 if (tab->tab_contents() && tab->tab_contents()->render_view_host()) { |
461 tab->tab_contents()->render_view_host()->Zoom( | 461 tab->tab_contents()->render_view_host()->Zoom( |
462 static_cast<PageZoom::Function>(zoom_level)); | 462 static_cast<PageZoom::Function>(zoom_level)); |
463 } | 463 } |
464 } | 464 } |
465 } | 465 } |
OLD | NEW |