OLD | NEW |
1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 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 "content/shell/browser/layout_test/blink_test_controller.h" | 5 #include "content/shell/browser/layout_test/blink_test_controller.h" |
6 | 6 |
7 #include <stddef.h> | 7 #include <stddef.h> |
8 | 8 |
9 #include <iostream> | 9 #include <iostream> |
10 #include <set> | 10 #include <set> |
(...skipping 508 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
519 IPC_MESSAGE_HANDLER(ShellViewHostMsg_GetBluetoothManualChooserEvents, | 519 IPC_MESSAGE_HANDLER(ShellViewHostMsg_GetBluetoothManualChooserEvents, |
520 OnGetBluetoothManualChooserEvents) | 520 OnGetBluetoothManualChooserEvents) |
521 IPC_MESSAGE_HANDLER(ShellViewHostMsg_SendBluetoothManualChooserEvent, | 521 IPC_MESSAGE_HANDLER(ShellViewHostMsg_SendBluetoothManualChooserEvent, |
522 OnSendBluetoothManualChooserEvent) | 522 OnSendBluetoothManualChooserEvent) |
523 IPC_MESSAGE_UNHANDLED(handled = false) | 523 IPC_MESSAGE_UNHANDLED(handled = false) |
524 IPC_END_MESSAGE_MAP() | 524 IPC_END_MESSAGE_MAP() |
525 | 525 |
526 return handled; | 526 return handled; |
527 } | 527 } |
528 | 528 |
529 bool BlinkTestController::OnMessageReceived( | |
530 const IPC::Message& message, | |
531 RenderFrameHost* render_frame_host) { | |
532 bool handled = true; | |
533 IPC_BEGIN_MESSAGE_MAP_WITH_PARAM(BlinkTestController, message, | |
534 render_frame_host) | |
535 IPC_MESSAGE_HANDLER(ShellViewHostMsg_LayoutDumpResponse, | |
536 OnLayoutDumpResponse) | |
537 IPC_MESSAGE_UNHANDLED(handled = false) | |
538 IPC_END_MESSAGE_MAP() | |
539 return handled; | |
540 } | |
541 | |
542 void BlinkTestController::PluginCrashed(const base::FilePath& plugin_path, | 529 void BlinkTestController::PluginCrashed(const base::FilePath& plugin_path, |
543 base::ProcessId plugin_pid) { | 530 base::ProcessId plugin_pid) { |
544 DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); | 531 DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); |
545 printer_->AddErrorMessage( | 532 printer_->AddErrorMessage( |
546 base::StringPrintf("#CRASHED - plugin (pid %d)", plugin_pid)); | 533 base::StringPrintf("#CRASHED - plugin (pid %d)", plugin_pid)); |
547 base::ThreadTaskRunnerHandle::Get()->PostTask( | 534 base::ThreadTaskRunnerHandle::Get()->PostTask( |
548 FROM_HERE, | 535 FROM_HERE, |
549 base::Bind(base::IgnoreResult(&BlinkTestController::DiscardMainWindow), | 536 base::Bind(base::IgnoreResult(&BlinkTestController::DiscardMainWindow), |
550 base::Unretained(this))); | 537 base::Unretained(this))); |
551 } | 538 } |
(...skipping 232 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
784 printer_->PrintTextFooter(); | 771 printer_->PrintTextFooter(); |
785 } | 772 } |
786 | 773 |
787 void BlinkTestController::OnInitiateLayoutDump() { | 774 void BlinkTestController::OnInitiateLayoutDump() { |
788 int number_of_messages = 0; | 775 int number_of_messages = 0; |
789 for (RenderFrameHost* rfh : main_window_->web_contents()->GetAllFrames()) { | 776 for (RenderFrameHost* rfh : main_window_->web_contents()->GetAllFrames()) { |
790 if (!rfh->IsRenderFrameLive()) | 777 if (!rfh->IsRenderFrameLive()) |
791 continue; | 778 continue; |
792 | 779 |
793 ++number_of_messages; | 780 ++number_of_messages; |
794 GetLayoutTestControlPtr(rfh)->LayoutDumpRequest(); | 781 GetLayoutTestControlPtr(rfh)->DumpFrameLayout( |
| 782 base::Bind(&BlinkTestController::OnDumpFrameLayoutResponse, |
| 783 base::Unretained(this), rfh->GetFrameTreeNodeId())); |
795 } | 784 } |
796 | 785 |
797 pending_layout_dumps_ = number_of_messages; | 786 pending_layout_dumps_ = number_of_messages; |
798 } | 787 } |
799 | 788 |
800 void BlinkTestController::OnLayoutTestRuntimeFlagsChanged( | 789 void BlinkTestController::OnLayoutTestRuntimeFlagsChanged( |
801 int sender_process_host_id, | 790 int sender_process_host_id, |
802 const base::DictionaryValue& changed_layout_test_runtime_flags) { | 791 const base::DictionaryValue& changed_layout_test_runtime_flags) { |
803 // Stash the accumulated changes for future, not-yet-created renderers. | 792 // Stash the accumulated changes for future, not-yet-created renderers. |
804 accumulated_layout_test_runtime_flags_changes_.MergeDictionary( | 793 accumulated_layout_test_runtime_flags_changes_.MergeDictionary( |
805 &changed_layout_test_runtime_flags); | 794 &changed_layout_test_runtime_flags); |
806 | 795 |
807 // Propagate the changes to all the tracked renderer processes. | 796 // Propagate the changes to all the tracked renderer processes. |
808 for (RenderProcessHost* process : all_observed_render_process_hosts_) { | 797 for (RenderProcessHost* process : all_observed_render_process_hosts_) { |
809 // Do not propagate the changes back to the process that originated them. | 798 // Do not propagate the changes back to the process that originated them. |
810 // (propagating them back could also clobber subsequent changes in the | 799 // (propagating them back could also clobber subsequent changes in the |
811 // originator). | 800 // originator). |
812 if (process->GetID() == sender_process_host_id) | 801 if (process->GetID() == sender_process_host_id) |
813 continue; | 802 continue; |
814 | 803 |
815 process->Send(new LayoutTestMsg_ReplicateLayoutTestRuntimeFlagsChanges( | 804 process->Send(new LayoutTestMsg_ReplicateLayoutTestRuntimeFlagsChanges( |
816 changed_layout_test_runtime_flags)); | 805 changed_layout_test_runtime_flags)); |
817 } | 806 } |
818 } | 807 } |
819 | 808 |
820 void BlinkTestController::OnLayoutDumpResponse(RenderFrameHost* sender, | 809 void BlinkTestController::OnDumpFrameLayoutResponse(int frame_tree_node_id, |
821 const std::string& dump) { | 810 const std::string& dump) { |
822 // Store the result. | 811 // Store the result. |
823 auto pair = frame_to_layout_dump_map_.insert( | 812 auto pair = frame_to_layout_dump_map_.insert( |
824 std::make_pair(sender->GetFrameTreeNodeId(), dump)); | 813 std::make_pair(frame_tree_node_id, dump)); |
825 bool insertion_took_place = pair.second; | 814 bool insertion_took_place = pair.second; |
826 DCHECK(insertion_took_place); | 815 DCHECK(insertion_took_place); |
827 | 816 |
828 // See if we need to wait for more responses. | 817 // See if we need to wait for more responses. |
829 pending_layout_dumps_--; | 818 pending_layout_dumps_--; |
830 DCHECK_LE(0, pending_layout_dumps_); | 819 DCHECK_LE(0, pending_layout_dumps_); |
831 if (pending_layout_dumps_ > 0) | 820 if (pending_layout_dumps_ > 0) |
832 return; | 821 return; |
833 | 822 |
834 // Stitch the frame-specific results in the right order. | 823 // Stitch the frame-specific results in the right order. |
(...skipping 221 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1056 } | 1045 } |
1057 DCHECK(layout_test_control_map_[frame].get()); | 1046 DCHECK(layout_test_control_map_[frame].get()); |
1058 return layout_test_control_map_[frame].get(); | 1047 return layout_test_control_map_[frame].get(); |
1059 } | 1048 } |
1060 | 1049 |
1061 void BlinkTestController::HandleLayoutTestControlError(RenderFrameHost* frame) { | 1050 void BlinkTestController::HandleLayoutTestControlError(RenderFrameHost* frame) { |
1062 layout_test_control_map_.erase(frame); | 1051 layout_test_control_map_.erase(frame); |
1063 } | 1052 } |
1064 | 1053 |
1065 } // namespace content | 1054 } // namespace content |
OLD | NEW |