| OLD | NEW |
| 1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2010 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 "app/l10n_util.h" | 9 #include "app/l10n_util.h" |
| 10 #include "app/view_prop.h" | 10 #include "app/view_prop.h" |
| (...skipping 326 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 337 | 337 |
| 338 switch (disposition) { | 338 switch (disposition) { |
| 339 case CURRENT_TAB: | 339 case CURRENT_TAB: |
| 340 case SINGLETON_TAB: | 340 case SINGLETON_TAB: |
| 341 case NEW_FOREGROUND_TAB: | 341 case NEW_FOREGROUND_TAB: |
| 342 case NEW_BACKGROUND_TAB: | 342 case NEW_BACKGROUND_TAB: |
| 343 case NEW_POPUP: | 343 case NEW_POPUP: |
| 344 case NEW_WINDOW: | 344 case NEW_WINDOW: |
| 345 case SAVE_TO_DISK: | 345 case SAVE_TO_DISK: |
| 346 if (automation_) { | 346 if (automation_) { |
| 347 automation_->Send(new AutomationMsg_OpenURL(0, tab_handle_, | 347 automation_->Send(new AutomationMsg_OpenURL(tab_handle_, |
| 348 url, referrer, | 348 url, referrer, |
| 349 disposition)); | 349 disposition)); |
| 350 // TODO(ananta) | 350 // TODO(ananta) |
| 351 // We should populate other fields in the | 351 // We should populate other fields in the |
| 352 // ViewHostMsg_FrameNavigate_Params structure. Another option could be | 352 // ViewHostMsg_FrameNavigate_Params structure. Another option could be |
| 353 // to refactor the UpdateHistoryForNavigation function in TabContents. | 353 // to refactor the UpdateHistoryForNavigation function in TabContents. |
| 354 ViewHostMsg_FrameNavigate_Params params; | 354 ViewHostMsg_FrameNavigate_Params params; |
| 355 params.referrer = referrer; | 355 params.referrer = referrer; |
| 356 params.url = url; | 356 params.url = url; |
| 357 params.page_id = -1; | 357 params.page_id = -1; |
| 358 params.transition = PageTransition::LINK; | 358 params.transition = PageTransition::LINK; |
| 359 | 359 |
| 360 NavigationController::LoadCommittedDetails details; | 360 NavigationController::LoadCommittedDetails details; |
| 361 details.did_replace_entry = false; | 361 details.did_replace_entry = false; |
| 362 | 362 |
| 363 scoped_refptr<history::HistoryAddPageArgs> add_page_args( | 363 scoped_refptr<history::HistoryAddPageArgs> add_page_args( |
| 364 tab_contents_->CreateHistoryAddPageArgs(url, details, params)); | 364 tab_contents_->CreateHistoryAddPageArgs(url, details, params)); |
| 365 tab_contents_->UpdateHistoryForNavigation(add_page_args); | 365 tab_contents_->UpdateHistoryForNavigation(add_page_args); |
| 366 } | 366 } |
| 367 break; | 367 break; |
| 368 default: | 368 default: |
| 369 NOTREACHED(); | 369 NOTREACHED(); |
| 370 break; | 370 break; |
| 371 } | 371 } |
| 372 } | 372 } |
| 373 | 373 |
| 374 void ExternalTabContainer::NavigationStateChanged(const TabContents* source, | 374 void ExternalTabContainer::NavigationStateChanged(const TabContents* source, |
| 375 unsigned changed_flags) { | 375 unsigned changed_flags) { |
| 376 if (automation_) { | 376 if (automation_) { |
| 377 IPC::NavigationInfo nav_info; | 377 NavigationInfo nav_info; |
| 378 if (InitNavigationInfo(&nav_info, NavigationType::NAV_IGNORE, 0)) | 378 if (InitNavigationInfo(&nav_info, NavigationType::NAV_IGNORE, 0)) |
| 379 automation_->Send(new AutomationMsg_NavigationStateChanged( | 379 automation_->Send(new AutomationMsg_NavigationStateChanged( |
| 380 0, tab_handle_, changed_flags, nav_info)); | 380 tab_handle_, changed_flags, nav_info)); |
| 381 } | 381 } |
| 382 } | 382 } |
| 383 | 383 |
| 384 void ExternalTabContainer::AddNewContents(TabContents* source, | 384 void ExternalTabContainer::AddNewContents(TabContents* source, |
| 385 TabContents* new_contents, | 385 TabContents* new_contents, |
| 386 WindowOpenDisposition disposition, | 386 WindowOpenDisposition disposition, |
| 387 const gfx::Rect& initial_pos, | 387 const gfx::Rect& initial_pos, |
| 388 bool user_gesture) { | 388 bool user_gesture) { |
| 389 if (!automation_) { | 389 if (!automation_) { |
| 390 DCHECK(pending_); | 390 DCHECK(pending_); |
| (...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 425 true, | 425 true, |
| 426 route_all_top_level_navigations_); | 426 route_all_top_level_navigations_); |
| 427 | 427 |
| 428 if (result) { | 428 if (result) { |
| 429 if (route_all_top_level_navigations_) { | 429 if (route_all_top_level_navigations_) { |
| 430 return; | 430 return; |
| 431 } | 431 } |
| 432 uintptr_t cookie = reinterpret_cast<uintptr_t>(new_container.get()); | 432 uintptr_t cookie = reinterpret_cast<uintptr_t>(new_container.get()); |
| 433 pending_tabs_.Get()[cookie] = new_container; | 433 pending_tabs_.Get()[cookie] = new_container; |
| 434 new_container->set_pending(true); | 434 new_container->set_pending(true); |
| 435 IPC::AttachExternalTabParams attach_params_; | 435 AttachExternalTabParams attach_params_; |
| 436 attach_params_.cookie = static_cast<uint64>(cookie); | 436 attach_params_.cookie = static_cast<uint64>(cookie); |
| 437 attach_params_.dimensions = initial_pos; | 437 attach_params_.dimensions = initial_pos; |
| 438 attach_params_.user_gesture = user_gesture; | 438 attach_params_.user_gesture = user_gesture; |
| 439 attach_params_.disposition = disposition; | 439 attach_params_.disposition = disposition; |
| 440 attach_params_.profile_name = WideToUTF8( | 440 attach_params_.profile_name = WideToUTF8( |
| 441 tab_contents()->profile()->GetPath().DirName().BaseName().value()); | 441 tab_contents()->profile()->GetPath().DirName().BaseName().value()); |
| 442 automation_->Send(new AutomationMsg_AttachExternalTab(0, | 442 automation_->Send(new AutomationMsg_AttachExternalTab( |
| 443 tab_handle_, attach_params_)); | 443 tab_handle_, attach_params_)); |
| 444 } else { | 444 } else { |
| 445 NOTREACHED(); | 445 NOTREACHED(); |
| 446 } | 446 } |
| 447 } | 447 } |
| 448 | 448 |
| 449 void ExternalTabContainer::TabContentsCreated(TabContents* new_contents) { | 449 void ExternalTabContainer::TabContentsCreated(TabContents* new_contents) { |
| 450 RenderViewHost* rvh = new_contents->render_view_host(); | 450 RenderViewHost* rvh = new_contents->render_view_host(); |
| 451 DCHECK(rvh != NULL); | 451 DCHECK(rvh != NULL); |
| 452 | 452 |
| (...skipping 19 matching lines...) Expand all Loading... |
| 472 void ExternalTabContainer::CloseContents(TabContents* source) { | 472 void ExternalTabContainer::CloseContents(TabContents* source) { |
| 473 if (!automation_) | 473 if (!automation_) |
| 474 return; | 474 return; |
| 475 | 475 |
| 476 if (unload_reply_message_) { | 476 if (unload_reply_message_) { |
| 477 AutomationMsg_RunUnloadHandlers::WriteReplyParams(unload_reply_message_, | 477 AutomationMsg_RunUnloadHandlers::WriteReplyParams(unload_reply_message_, |
| 478 true); | 478 true); |
| 479 automation_->Send(unload_reply_message_); | 479 automation_->Send(unload_reply_message_); |
| 480 unload_reply_message_ = NULL; | 480 unload_reply_message_ = NULL; |
| 481 } else { | 481 } else { |
| 482 automation_->Send(new AutomationMsg_CloseExternalTab(0, tab_handle_)); | 482 automation_->Send(new AutomationMsg_CloseExternalTab(tab_handle_)); |
| 483 } | 483 } |
| 484 } | 484 } |
| 485 | 485 |
| 486 void ExternalTabContainer::MoveContents(TabContents* source, | 486 void ExternalTabContainer::MoveContents(TabContents* source, |
| 487 const gfx::Rect& pos) { | 487 const gfx::Rect& pos) { |
| 488 } | 488 } |
| 489 | 489 |
| 490 void ExternalTabContainer::URLStarredChanged(TabContents* source, | 490 void ExternalTabContainer::URLStarredChanged(TabContents* source, |
| 491 bool starred) { | 491 bool starred) { |
| 492 } | 492 } |
| 493 | 493 |
| 494 void ExternalTabContainer::UpdateTargetURL(TabContents* source, | 494 void ExternalTabContainer::UpdateTargetURL(TabContents* source, |
| 495 const GURL& url) { | 495 const GURL& url) { |
| 496 if (automation_) { | 496 if (automation_) { |
| 497 std::wstring url_string = CA2W(url.spec().c_str()); | 497 std::wstring url_string = CA2W(url.spec().c_str()); |
| 498 automation_->Send( | 498 automation_->Send( |
| 499 new AutomationMsg_UpdateTargetUrl(0, tab_handle_, url_string)); | 499 new AutomationMsg_UpdateTargetUrl(tab_handle_, url_string)); |
| 500 } | 500 } |
| 501 } | 501 } |
| 502 | 502 |
| 503 void ExternalTabContainer::ContentsZoomChange(bool zoom_in) { | 503 void ExternalTabContainer::ContentsZoomChange(bool zoom_in) { |
| 504 } | 504 } |
| 505 | 505 |
| 506 void ExternalTabContainer::ToolbarSizeChanged(TabContents* source, | 506 void ExternalTabContainer::ToolbarSizeChanged(TabContents* source, |
| 507 bool finished) { | 507 bool finished) { |
| 508 } | 508 } |
| 509 | 509 |
| 510 void ExternalTabContainer::ForwardMessageToExternalHost( | 510 void ExternalTabContainer::ForwardMessageToExternalHost( |
| 511 const std::string& message, const std::string& origin, | 511 const std::string& message, const std::string& origin, |
| 512 const std::string& target) { | 512 const std::string& target) { |
| 513 if (automation_) { | 513 if (automation_) { |
| 514 automation_->Send( | 514 automation_->Send(new AutomationMsg_ForwardMessageToExternalHost( |
| 515 new AutomationMsg_ForwardMessageToExternalHost(0, tab_handle_, | 515 tab_handle_, message, origin, target)); |
| 516 message, origin, target)); | |
| 517 } | 516 } |
| 518 } | 517 } |
| 519 | 518 |
| 520 bool ExternalTabContainer::IsExternalTabContainer() const { | 519 bool ExternalTabContainer::IsExternalTabContainer() const { |
| 521 return true; | 520 return true; |
| 522 } | 521 } |
| 523 | 522 |
| 524 gfx::NativeWindow ExternalTabContainer::GetFrameNativeWindow() { | 523 gfx::NativeWindow ExternalTabContainer::GetFrameNativeWindow() { |
| 525 return hwnd(); | 524 return hwnd(); |
| 526 } | 525 } |
| 527 | 526 |
| 528 bool ExternalTabContainer::TakeFocus(bool reverse) { | 527 bool ExternalTabContainer::TakeFocus(bool reverse) { |
| 529 if (automation_) { | 528 if (automation_) { |
| 530 automation_->Send(new AutomationMsg_TabbedOut(0, tab_handle_, | 529 automation_->Send(new AutomationMsg_TabbedOut(tab_handle_, |
| 531 win_util::IsShiftPressed())); | 530 win_util::IsShiftPressed())); |
| 532 } | 531 } |
| 533 | 532 |
| 534 return true; | 533 return true; |
| 535 } | 534 } |
| 536 | 535 |
| 537 bool ExternalTabContainer::CanDownload(int request_id) { | 536 bool ExternalTabContainer::CanDownload(int request_id) { |
| 538 if (load_requests_via_automation_) { | 537 if (load_requests_via_automation_) { |
| 539 if (automation_) { | 538 if (automation_) { |
| 540 // In case the host needs to show UI that needs to take the focus. | 539 // In case the host needs to show UI that needs to take the focus. |
| (...skipping 74 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 615 } | 614 } |
| 616 external_context_menu_.reset( | 615 external_context_menu_.reset( |
| 617 new RenderViewContextMenuViews(tab_contents(), params)); | 616 new RenderViewContextMenuViews(tab_contents(), params)); |
| 618 external_context_menu_->SetExternal(); | 617 external_context_menu_->SetExternal(); |
| 619 external_context_menu_->Init(); | 618 external_context_menu_->Init(); |
| 620 external_context_menu_->UpdateMenuItemStates(); | 619 external_context_menu_->UpdateMenuItemStates(); |
| 621 | 620 |
| 622 POINT screen_pt = { params.x, params.y }; | 621 POINT screen_pt = { params.x, params.y }; |
| 623 MapWindowPoints(GetNativeView(), HWND_DESKTOP, &screen_pt, 1); | 622 MapWindowPoints(GetNativeView(), HWND_DESKTOP, &screen_pt, 1); |
| 624 | 623 |
| 625 IPC::MiniContextMenuParams ipc_params( | 624 MiniContextMenuParams ipc_params( |
| 626 screen_pt.x, | 625 screen_pt.x, |
| 627 screen_pt.y, | 626 screen_pt.y, |
| 628 params.link_url, | 627 params.link_url, |
| 629 params.unfiltered_link_url, | 628 params.unfiltered_link_url, |
| 630 params.src_url, | 629 params.src_url, |
| 631 params.page_url, | 630 params.page_url, |
| 632 params.frame_url); | 631 params.frame_url); |
| 633 | 632 |
| 634 bool rtl = base::i18n::IsRTL(); | 633 bool rtl = base::i18n::IsRTL(); |
| 635 automation_->Send( | 634 automation_->Send( |
| 636 new AutomationMsg_ForwardContextMenuToExternalHost(0, tab_handle_, | 635 new AutomationMsg_ForwardContextMenuToExternalHost(tab_handle_, |
| 637 external_context_menu_->GetMenuHandle(), | 636 external_context_menu_->GetMenuHandle(), |
| 638 rtl ? TPM_RIGHTALIGN : TPM_LEFTALIGN, ipc_params)); | 637 rtl ? TPM_RIGHTALIGN : TPM_LEFTALIGN, ipc_params)); |
| 639 | 638 |
| 640 return true; | 639 return true; |
| 641 } | 640 } |
| 642 | 641 |
| 643 bool ExternalTabContainer::ExecuteContextMenuCommand(int command) { | 642 bool ExternalTabContainer::ExecuteContextMenuCommand(int command) { |
| 644 if (!external_context_menu_.get()) { | 643 if (!external_context_menu_.get()) { |
| 645 NOTREACHED(); | 644 NOTREACHED(); |
| 646 return false; | 645 return false; |
| (...skipping 74 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 721 static const int kHttpClientErrorStart = 400; | 720 static const int kHttpClientErrorStart = 400; |
| 722 static const int kHttpServerErrorEnd = 510; | 721 static const int kHttpServerErrorEnd = 510; |
| 723 | 722 |
| 724 switch (type.value) { | 723 switch (type.value) { |
| 725 case NotificationType::LOAD_STOP: { | 724 case NotificationType::LOAD_STOP: { |
| 726 const LoadNotificationDetails* load = | 725 const LoadNotificationDetails* load = |
| 727 Details<LoadNotificationDetails>(details).ptr(); | 726 Details<LoadNotificationDetails>(details).ptr(); |
| 728 if (load != NULL && PageTransition::IsMainFrame(load->origin())) { | 727 if (load != NULL && PageTransition::IsMainFrame(load->origin())) { |
| 729 TRACE_EVENT_END("ExternalTabContainer::Navigate", 0, | 728 TRACE_EVENT_END("ExternalTabContainer::Navigate", 0, |
| 730 load->url().spec()); | 729 load->url().spec()); |
| 731 automation_->Send(new AutomationMsg_TabLoaded(0, tab_handle_, | 730 automation_->Send(new AutomationMsg_TabLoaded(tab_handle_, |
| 732 load->url())); | 731 load->url())); |
| 733 } | 732 } |
| 734 break; | 733 break; |
| 735 } | 734 } |
| 736 case NotificationType::NAV_ENTRY_COMMITTED: { | 735 case NotificationType::NAV_ENTRY_COMMITTED: { |
| 737 if (ignore_next_load_notification_) { | 736 if (ignore_next_load_notification_) { |
| 738 ignore_next_load_notification_ = false; | 737 ignore_next_load_notification_ = false; |
| 739 return; | 738 return; |
| 740 } | 739 } |
| 741 | 740 |
| 742 const NavigationController::LoadCommittedDetails* commit = | 741 const NavigationController::LoadCommittedDetails* commit = |
| 743 Details<NavigationController::LoadCommittedDetails>(details).ptr(); | 742 Details<NavigationController::LoadCommittedDetails>(details).ptr(); |
| 744 | 743 |
| 745 if (commit->http_status_code >= kHttpClientErrorStart && | 744 if (commit->http_status_code >= kHttpClientErrorStart && |
| 746 commit->http_status_code <= kHttpServerErrorEnd) { | 745 commit->http_status_code <= kHttpServerErrorEnd) { |
| 747 automation_->Send(new AutomationMsg_NavigationFailed( | 746 automation_->Send(new AutomationMsg_NavigationFailed( |
| 748 0, tab_handle_, commit->http_status_code, commit->entry->url())); | 747 tab_handle_, commit->http_status_code, commit->entry->url())); |
| 749 | 748 |
| 750 ignore_next_load_notification_ = true; | 749 ignore_next_load_notification_ = true; |
| 751 } else { | 750 } else { |
| 752 IPC::NavigationInfo navigation_info; | 751 NavigationInfo navigation_info; |
| 753 // When the previous entry index is invalid, it will be -1, which | 752 // When the previous entry index is invalid, it will be -1, which |
| 754 // will still make the computation come out right (navigating to the | 753 // will still make the computation come out right (navigating to the |
| 755 // 0th entry will be +1). | 754 // 0th entry will be +1). |
| 756 if (InitNavigationInfo(&navigation_info, commit->type, | 755 if (InitNavigationInfo(&navigation_info, commit->type, |
| 757 commit->previous_entry_index - | 756 commit->previous_entry_index - |
| 758 tab_contents_->controller().last_committed_entry_index())) | 757 tab_contents_->controller().last_committed_entry_index())) |
| 759 automation_->Send(new AutomationMsg_DidNavigate(0, tab_handle_, | 758 automation_->Send(new AutomationMsg_DidNavigate(tab_handle_, |
| 760 navigation_info)); | 759 navigation_info)); |
| 761 } | 760 } |
| 762 break; | 761 break; |
| 763 } | 762 } |
| 764 case NotificationType::FAIL_PROVISIONAL_LOAD_WITH_ERROR: { | 763 case NotificationType::FAIL_PROVISIONAL_LOAD_WITH_ERROR: { |
| 765 const ProvisionalLoadDetails* load_details = | 764 const ProvisionalLoadDetails* load_details = |
| 766 Details<ProvisionalLoadDetails>(details).ptr(); | 765 Details<ProvisionalLoadDetails>(details).ptr(); |
| 767 automation_->Send(new AutomationMsg_NavigationFailed( | 766 automation_->Send(new AutomationMsg_NavigationFailed( |
| 768 0, tab_handle_, load_details->error_code(), load_details->url())); | 767 tab_handle_, load_details->error_code(), load_details->url())); |
| 769 | 768 |
| 770 ignore_next_load_notification_ = true; | 769 ignore_next_load_notification_ = true; |
| 771 break; | 770 break; |
| 772 } | 771 } |
| 773 case NotificationType::RENDER_VIEW_HOST_CREATED_FOR_TAB: { | 772 case NotificationType::RENDER_VIEW_HOST_CREATED_FOR_TAB: { |
| 774 if (load_requests_via_automation_) { | 773 if (load_requests_via_automation_) { |
| 775 RenderViewHost* rvh = Details<RenderViewHost>(details).ptr(); | 774 RenderViewHost* rvh = Details<RenderViewHost>(details).ptr(); |
| 776 RegisterRenderViewHostForAutomation(rvh, false); | 775 RegisterRenderViewHostForAutomation(rvh, false); |
| 777 } | 776 } |
| 778 break; | 777 break; |
| (...skipping 74 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 853 | 852 |
| 854 // Send this keystroke to the external host as it could be processed as an | 853 // Send this keystroke to the external host as it could be processed as an |
| 855 // accelerator there. If the host does not handle this accelerator, it will | 854 // accelerator there. If the host does not handle this accelerator, it will |
| 856 // reflect the accelerator back to us via the ProcessUnhandledAccelerator | 855 // reflect the accelerator back to us via the ProcessUnhandledAccelerator |
| 857 // method. | 856 // method. |
| 858 MSG msg = {0}; | 857 MSG msg = {0}; |
| 859 msg.hwnd = window; | 858 msg.hwnd = window; |
| 860 msg.message = message; | 859 msg.message = message; |
| 861 msg.wParam = wparam; | 860 msg.wParam = wparam; |
| 862 msg.lParam = lparam; | 861 msg.lParam = lparam; |
| 863 automation_->Send(new AutomationMsg_HandleAccelerator(0, tab_handle_, msg)); | 862 automation_->Send(new AutomationMsg_HandleAccelerator(tab_handle_, msg)); |
| 864 return true; | 863 return true; |
| 865 } | 864 } |
| 866 | 865 |
| 867 bool ExternalTabContainer::InitNavigationInfo(IPC::NavigationInfo* nav_info, | 866 bool ExternalTabContainer::InitNavigationInfo(NavigationInfo* nav_info, |
| 868 NavigationType::Type nav_type, | 867 NavigationType::Type nav_type, |
| 869 int relative_offset) { | 868 int relative_offset) { |
| 870 DCHECK(nav_info); | 869 DCHECK(nav_info); |
| 871 NavigationEntry* entry = tab_contents_->controller().GetActiveEntry(); | 870 NavigationEntry* entry = tab_contents_->controller().GetActiveEntry(); |
| 872 // If this is very early in the game then we may not have an entry. | 871 // If this is very early in the game then we may not have an entry. |
| 873 if (!entry) | 872 if (!entry) |
| 874 return false; | 873 return false; |
| 875 | 874 |
| 876 nav_info->navigation_type = nav_type; | 875 nav_info->navigation_type = nav_type; |
| 877 nav_info->relative_offset = relative_offset; | 876 nav_info->relative_offset = relative_offset; |
| (...skipping 105 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 983 | 982 |
| 984 TRACE_EVENT_BEGIN("ExternalTabContainer::Navigate", 0, url.spec()); | 983 TRACE_EVENT_BEGIN("ExternalTabContainer::Navigate", 0, url.spec()); |
| 985 | 984 |
| 986 tab_contents_->controller().LoadURL(url, referrer, | 985 tab_contents_->controller().LoadURL(url, referrer, |
| 987 PageTransition::START_PAGE); | 986 PageTransition::START_PAGE); |
| 988 } | 987 } |
| 989 | 988 |
| 990 bool ExternalTabContainer::OnGoToEntryOffset(int offset) { | 989 bool ExternalTabContainer::OnGoToEntryOffset(int offset) { |
| 991 if (load_requests_via_automation_) { | 990 if (load_requests_via_automation_) { |
| 992 automation_->Send(new AutomationMsg_RequestGoToHistoryEntryOffset( | 991 automation_->Send(new AutomationMsg_RequestGoToHistoryEntryOffset( |
| 993 0, tab_handle_, offset)); | 992 tab_handle_, offset)); |
| 994 return false; | 993 return false; |
| 995 } | 994 } |
| 996 | 995 |
| 997 return true; | 996 return true; |
| 998 } | 997 } |
| 999 | 998 |
| 1000 void ExternalTabContainer::LoadAccelerators() { | 999 void ExternalTabContainer::LoadAccelerators() { |
| 1001 HACCEL accelerator_table = AtlLoadAccelerators(IDR_CHROMEFRAME); | 1000 HACCEL accelerator_table = AtlLoadAccelerators(IDR_CHROMEFRAME); |
| 1002 DCHECK(accelerator_table); | 1001 DCHECK(accelerator_table); |
| 1003 | 1002 |
| (...skipping 109 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1113 | 1112 |
| 1114 if (disposition == CURRENT_TAB) { | 1113 if (disposition == CURRENT_TAB) { |
| 1115 DCHECK(route_all_top_level_navigations_); | 1114 DCHECK(route_all_top_level_navigations_); |
| 1116 disposition = NEW_FOREGROUND_TAB; | 1115 disposition = NEW_FOREGROUND_TAB; |
| 1117 } | 1116 } |
| 1118 ExternalTabContainer::OpenURLFromTab(source, url, referrer, disposition, | 1117 ExternalTabContainer::OpenURLFromTab(source, url, referrer, disposition, |
| 1119 transition); | 1118 transition); |
| 1120 // support only one navigation for a dummy tab before it is killed. | 1119 // support only one navigation for a dummy tab before it is killed. |
| 1121 ::DestroyWindow(GetNativeView()); | 1120 ::DestroyWindow(GetNativeView()); |
| 1122 } | 1121 } |
| OLD | NEW |