OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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/ui/gtk/task_manager_gtk.h" | 5 #include "chrome/browser/ui/gtk/task_manager_gtk.h" |
6 | 6 |
7 #include <gdk/gdkkeysyms.h> | 7 #include <gdk/gdkkeysyms.h> |
8 | 8 |
9 #include <algorithm> | 9 #include <algorithm> |
10 #include <set> | 10 #include <set> |
(...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
63 kTaskManagerCPU, | 63 kTaskManagerCPU, |
64 kTaskManagerNetwork, | 64 kTaskManagerNetwork, |
65 kTaskManagerProcessID, | 65 kTaskManagerProcessID, |
66 kTaskManagerJavaScriptMemory, | 66 kTaskManagerJavaScriptMemory, |
67 kTaskManagerWebCoreImageCache, | 67 kTaskManagerWebCoreImageCache, |
68 kTaskManagerWebCoreScriptsCache, | 68 kTaskManagerWebCoreScriptsCache, |
69 kTaskManagerWebCoreCssCache, | 69 kTaskManagerWebCoreCssCache, |
70 kTaskManagerVideoMemory, | 70 kTaskManagerVideoMemory, |
71 kTaskManagerFPS, | 71 kTaskManagerFPS, |
72 kTaskManagerSqliteMemoryUsed, | 72 kTaskManagerSqliteMemoryUsed, |
| 73 kTaskManagerNaClDebugStubPort, |
73 kTaskManagerGoatsTeleported, | 74 kTaskManagerGoatsTeleported, |
74 kTaskManagerColumnCount, | 75 kTaskManagerColumnCount, |
75 }; | 76 }; |
76 | 77 |
77 const TaskManagerColumn kTaskManagerLastVisibleColumn = | 78 const TaskManagerColumn kTaskManagerLastVisibleColumn = |
78 kTaskManagerGoatsTeleported; | 79 kTaskManagerGoatsTeleported; |
79 | 80 |
80 TaskManagerColumn TaskManagerResourceIDToColumnID(int id) { | 81 TaskManagerColumn TaskManagerResourceIDToColumnID(int id) { |
81 switch (id) { | 82 switch (id) { |
82 case IDS_TASK_MANAGER_TASK_COLUMN: | 83 case IDS_TASK_MANAGER_TASK_COLUMN: |
(...skipping 17 matching lines...) Expand all Loading... |
100 case IDS_TASK_MANAGER_WEBCORE_SCRIPTS_CACHE_COLUMN: | 101 case IDS_TASK_MANAGER_WEBCORE_SCRIPTS_CACHE_COLUMN: |
101 return kTaskManagerWebCoreScriptsCache; | 102 return kTaskManagerWebCoreScriptsCache; |
102 case IDS_TASK_MANAGER_WEBCORE_CSS_CACHE_COLUMN: | 103 case IDS_TASK_MANAGER_WEBCORE_CSS_CACHE_COLUMN: |
103 return kTaskManagerWebCoreCssCache; | 104 return kTaskManagerWebCoreCssCache; |
104 case IDS_TASK_MANAGER_VIDEO_MEMORY_COLUMN: | 105 case IDS_TASK_MANAGER_VIDEO_MEMORY_COLUMN: |
105 return kTaskManagerVideoMemory; | 106 return kTaskManagerVideoMemory; |
106 case IDS_TASK_MANAGER_FPS_COLUMN: | 107 case IDS_TASK_MANAGER_FPS_COLUMN: |
107 return kTaskManagerFPS; | 108 return kTaskManagerFPS; |
108 case IDS_TASK_MANAGER_SQLITE_MEMORY_USED_COLUMN: | 109 case IDS_TASK_MANAGER_SQLITE_MEMORY_USED_COLUMN: |
109 return kTaskManagerSqliteMemoryUsed; | 110 return kTaskManagerSqliteMemoryUsed; |
| 111 case IDS_TASK_MANAGER_NACL_DEBUG_STUB_PORT_COLUMN: |
| 112 return kTaskManagerNaClDebugStubPort; |
110 case IDS_TASK_MANAGER_GOATS_TELEPORTED_COLUMN: | 113 case IDS_TASK_MANAGER_GOATS_TELEPORTED_COLUMN: |
111 return kTaskManagerGoatsTeleported; | 114 return kTaskManagerGoatsTeleported; |
112 default: | 115 default: |
113 NOTREACHED(); | 116 NOTREACHED(); |
114 return static_cast<TaskManagerColumn>(-1); | 117 return static_cast<TaskManagerColumn>(-1); |
115 } | 118 } |
116 } | 119 } |
117 | 120 |
118 int TaskManagerColumnIDToResourceID(int id) { | 121 int TaskManagerColumnIDToResourceID(int id) { |
119 switch (id) { | 122 switch (id) { |
(...skipping 18 matching lines...) Expand all Loading... |
138 case kTaskManagerWebCoreScriptsCache: | 141 case kTaskManagerWebCoreScriptsCache: |
139 return IDS_TASK_MANAGER_WEBCORE_SCRIPTS_CACHE_COLUMN; | 142 return IDS_TASK_MANAGER_WEBCORE_SCRIPTS_CACHE_COLUMN; |
140 case kTaskManagerWebCoreCssCache: | 143 case kTaskManagerWebCoreCssCache: |
141 return IDS_TASK_MANAGER_WEBCORE_CSS_CACHE_COLUMN; | 144 return IDS_TASK_MANAGER_WEBCORE_CSS_CACHE_COLUMN; |
142 case kTaskManagerVideoMemory: | 145 case kTaskManagerVideoMemory: |
143 return IDS_TASK_MANAGER_VIDEO_MEMORY_COLUMN; | 146 return IDS_TASK_MANAGER_VIDEO_MEMORY_COLUMN; |
144 case kTaskManagerFPS: | 147 case kTaskManagerFPS: |
145 return IDS_TASK_MANAGER_FPS_COLUMN; | 148 return IDS_TASK_MANAGER_FPS_COLUMN; |
146 case kTaskManagerSqliteMemoryUsed: | 149 case kTaskManagerSqliteMemoryUsed: |
147 return IDS_TASK_MANAGER_SQLITE_MEMORY_USED_COLUMN; | 150 return IDS_TASK_MANAGER_SQLITE_MEMORY_USED_COLUMN; |
| 151 case kTaskManagerNaClDebugStubPort: |
| 152 return IDS_TASK_MANAGER_NACL_DEBUG_STUB_PORT_COLUMN; |
148 case kTaskManagerGoatsTeleported: | 153 case kTaskManagerGoatsTeleported: |
149 return IDS_TASK_MANAGER_GOATS_TELEPORTED_COLUMN; | 154 return IDS_TASK_MANAGER_GOATS_TELEPORTED_COLUMN; |
150 default: | 155 default: |
151 NOTREACHED(); | 156 NOTREACHED(); |
152 return -1; | 157 return -1; |
153 } | 158 } |
154 } | 159 } |
155 | 160 |
156 // Should be used for all gtk_tree_view functions that require a column index on | 161 // Should be used for all gtk_tree_view functions that require a column index on |
157 // input. | 162 // input. |
(...skipping 400 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
558 GDK_w, GDK_CONTROL_MASK, GtkAccelFlags(0), | 563 GDK_w, GDK_CONTROL_MASK, GtkAccelFlags(0), |
559 g_cclosure_new(G_CALLBACK(OnGtkAcceleratorThunk), | 564 g_cclosure_new(G_CALLBACK(OnGtkAcceleratorThunk), |
560 this, NULL)); | 565 this, NULL)); |
561 } | 566 } |
562 | 567 |
563 void TaskManagerGtk::CreateTaskManagerTreeview() { | 568 void TaskManagerGtk::CreateTaskManagerTreeview() { |
564 process_list_ = gtk_list_store_new(kTaskManagerColumnCount, | 569 process_list_ = gtk_list_store_new(kTaskManagerColumnCount, |
565 GDK_TYPE_PIXBUF, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_STRING, | 570 GDK_TYPE_PIXBUF, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_STRING, |
566 G_TYPE_STRING, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_STRING, | 571 G_TYPE_STRING, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_STRING, |
567 G_TYPE_STRING, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_STRING, | 572 G_TYPE_STRING, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_STRING, |
568 G_TYPE_STRING, G_TYPE_STRING); | 573 G_TYPE_STRING, G_TYPE_STRING, G_TYPE_STRING); |
569 | 574 |
570 // Support sorting on all columns. | 575 // Support sorting on all columns. |
571 process_list_sort_ = gtk_tree_model_sort_new_with_model( | 576 process_list_sort_ = gtk_tree_model_sort_new_with_model( |
572 GTK_TREE_MODEL(process_list_)); | 577 GTK_TREE_MODEL(process_list_)); |
573 gtk_tree_sortable_set_sort_func(GTK_TREE_SORTABLE(process_list_sort_), | 578 gtk_tree_sortable_set_sort_func(GTK_TREE_SORTABLE(process_list_sort_), |
574 kTaskManagerTask, | 579 kTaskManagerTask, |
575 ComparePage, this, NULL); | 580 ComparePage, this, NULL); |
576 gtk_tree_sortable_set_sort_func(GTK_TREE_SORTABLE(process_list_sort_), | 581 gtk_tree_sortable_set_sort_func(GTK_TREE_SORTABLE(process_list_sort_), |
577 kTaskManagerTask, | 582 kTaskManagerTask, |
578 CompareProfileName, this, NULL); | 583 CompareProfileName, this, NULL); |
(...skipping 27 matching lines...) Expand all Loading... |
606 gtk_tree_sortable_set_sort_func(GTK_TREE_SORTABLE(process_list_sort_), | 611 gtk_tree_sortable_set_sort_func(GTK_TREE_SORTABLE(process_list_sort_), |
607 kTaskManagerVideoMemory, | 612 kTaskManagerVideoMemory, |
608 CompareVideoMemory, this, NULL); | 613 CompareVideoMemory, this, NULL); |
609 gtk_tree_sortable_set_sort_func(GTK_TREE_SORTABLE(process_list_sort_), | 614 gtk_tree_sortable_set_sort_func(GTK_TREE_SORTABLE(process_list_sort_), |
610 kTaskManagerFPS, | 615 kTaskManagerFPS, |
611 CompareFPS, this, NULL); | 616 CompareFPS, this, NULL); |
612 gtk_tree_sortable_set_sort_func(GTK_TREE_SORTABLE(process_list_sort_), | 617 gtk_tree_sortable_set_sort_func(GTK_TREE_SORTABLE(process_list_sort_), |
613 kTaskManagerSqliteMemoryUsed, | 618 kTaskManagerSqliteMemoryUsed, |
614 CompareSqliteMemoryUsed, this, NULL); | 619 CompareSqliteMemoryUsed, this, NULL); |
615 gtk_tree_sortable_set_sort_func(GTK_TREE_SORTABLE(process_list_sort_), | 620 gtk_tree_sortable_set_sort_func(GTK_TREE_SORTABLE(process_list_sort_), |
| 621 kTaskManagerNaClDebugStubPort, |
| 622 CompareNaClDebugStubPort, this, NULL); |
| 623 gtk_tree_sortable_set_sort_func(GTK_TREE_SORTABLE(process_list_sort_), |
616 kTaskManagerGoatsTeleported, | 624 kTaskManagerGoatsTeleported, |
617 CompareGoatsTeleported, this, NULL); | 625 CompareGoatsTeleported, this, NULL); |
618 treeview_ = gtk_tree_view_new_with_model(process_list_sort_); | 626 treeview_ = gtk_tree_view_new_with_model(process_list_sort_); |
619 | 627 |
620 // Insert all the columns. | 628 // Insert all the columns. |
621 TreeViewInsertTaskColumn(treeview_, IDS_TASK_MANAGER_TASK_COLUMN); | 629 TreeViewInsertTaskColumn(treeview_, IDS_TASK_MANAGER_TASK_COLUMN); |
622 TreeViewInsertColumn(treeview_, IDS_TASK_MANAGER_PROFILE_NAME_COLUMN); | 630 TreeViewInsertColumn(treeview_, IDS_TASK_MANAGER_PROFILE_NAME_COLUMN); |
623 TreeViewInsertColumn(treeview_, IDS_TASK_MANAGER_SHARED_MEM_COLUMN); | 631 TreeViewInsertColumn(treeview_, IDS_TASK_MANAGER_SHARED_MEM_COLUMN); |
624 TreeViewInsertColumn(treeview_, IDS_TASK_MANAGER_PRIVATE_MEM_COLUMN); | 632 TreeViewInsertColumn(treeview_, IDS_TASK_MANAGER_PRIVATE_MEM_COLUMN); |
625 TreeViewInsertColumn(treeview_, IDS_TASK_MANAGER_CPU_COLUMN); | 633 TreeViewInsertColumn(treeview_, IDS_TASK_MANAGER_CPU_COLUMN); |
626 TreeViewInsertColumn(treeview_, IDS_TASK_MANAGER_NET_COLUMN); | 634 TreeViewInsertColumn(treeview_, IDS_TASK_MANAGER_NET_COLUMN); |
627 TreeViewInsertColumn(treeview_, IDS_TASK_MANAGER_PROCESS_ID_COLUMN); | 635 TreeViewInsertColumn(treeview_, IDS_TASK_MANAGER_PROCESS_ID_COLUMN); |
628 TreeViewInsertColumn(treeview_, | 636 TreeViewInsertColumn(treeview_, |
629 IDS_TASK_MANAGER_JAVASCRIPT_MEMORY_ALLOCATED_COLUMN); | 637 IDS_TASK_MANAGER_JAVASCRIPT_MEMORY_ALLOCATED_COLUMN); |
630 TreeViewInsertColumn(treeview_, IDS_TASK_MANAGER_WEBCORE_IMAGE_CACHE_COLUMN); | 638 TreeViewInsertColumn(treeview_, IDS_TASK_MANAGER_WEBCORE_IMAGE_CACHE_COLUMN); |
631 TreeViewInsertColumn(treeview_, | 639 TreeViewInsertColumn(treeview_, |
632 IDS_TASK_MANAGER_WEBCORE_SCRIPTS_CACHE_COLUMN); | 640 IDS_TASK_MANAGER_WEBCORE_SCRIPTS_CACHE_COLUMN); |
633 TreeViewInsertColumn(treeview_, IDS_TASK_MANAGER_WEBCORE_CSS_CACHE_COLUMN); | 641 TreeViewInsertColumn(treeview_, IDS_TASK_MANAGER_WEBCORE_CSS_CACHE_COLUMN); |
634 TreeViewInsertColumn(treeview_, IDS_TASK_MANAGER_VIDEO_MEMORY_COLUMN); | 642 TreeViewInsertColumn(treeview_, IDS_TASK_MANAGER_VIDEO_MEMORY_COLUMN); |
635 TreeViewInsertColumn(treeview_, IDS_TASK_MANAGER_FPS_COLUMN); | 643 TreeViewInsertColumn(treeview_, IDS_TASK_MANAGER_FPS_COLUMN); |
636 TreeViewInsertColumn(treeview_, IDS_TASK_MANAGER_SQLITE_MEMORY_USED_COLUMN); | 644 TreeViewInsertColumn(treeview_, IDS_TASK_MANAGER_SQLITE_MEMORY_USED_COLUMN); |
| 645 TreeViewInsertColumn(treeview_, IDS_TASK_MANAGER_NACL_DEBUG_STUB_PORT_COLUMN); |
637 TreeViewInsertColumn(treeview_, IDS_TASK_MANAGER_GOATS_TELEPORTED_COLUMN); | 646 TreeViewInsertColumn(treeview_, IDS_TASK_MANAGER_GOATS_TELEPORTED_COLUMN); |
638 | 647 |
639 // Hide some columns by default. | 648 // Hide some columns by default. |
640 TreeViewColumnSetVisible(treeview_, kTaskManagerProfileName, false); | 649 TreeViewColumnSetVisible(treeview_, kTaskManagerProfileName, false); |
641 TreeViewColumnSetVisible(treeview_, kTaskManagerSharedMem, false); | 650 TreeViewColumnSetVisible(treeview_, kTaskManagerSharedMem, false); |
642 TreeViewColumnSetVisible(treeview_, kTaskManagerJavaScriptMemory, false); | 651 TreeViewColumnSetVisible(treeview_, kTaskManagerJavaScriptMemory, false); |
643 TreeViewColumnSetVisible(treeview_, kTaskManagerWebCoreImageCache, false); | 652 TreeViewColumnSetVisible(treeview_, kTaskManagerWebCoreImageCache, false); |
644 TreeViewColumnSetVisible(treeview_, kTaskManagerWebCoreScriptsCache, false); | 653 TreeViewColumnSetVisible(treeview_, kTaskManagerWebCoreScriptsCache, false); |
645 TreeViewColumnSetVisible(treeview_, kTaskManagerWebCoreCssCache, false); | 654 TreeViewColumnSetVisible(treeview_, kTaskManagerWebCoreCssCache, false); |
646 TreeViewColumnSetVisible(treeview_, kTaskManagerVideoMemory, false); | 655 TreeViewColumnSetVisible(treeview_, kTaskManagerVideoMemory, false); |
647 TreeViewColumnSetVisible(treeview_, kTaskManagerSqliteMemoryUsed, false); | 656 TreeViewColumnSetVisible(treeview_, kTaskManagerSqliteMemoryUsed, false); |
| 657 TreeViewColumnSetVisible(treeview_, kTaskManagerNaClDebugStubPort, false); |
648 TreeViewColumnSetVisible(treeview_, kTaskManagerGoatsTeleported, false); | 658 TreeViewColumnSetVisible(treeview_, kTaskManagerGoatsTeleported, false); |
649 | 659 |
650 g_object_unref(process_list_); | 660 g_object_unref(process_list_); |
651 g_object_unref(process_list_sort_); | 661 g_object_unref(process_list_sort_); |
652 } | 662 } |
653 | 663 |
654 std::string TaskManagerGtk::GetModelText(int row, int col_id) { | 664 std::string TaskManagerGtk::GetModelText(int row, int col_id) { |
655 return UTF16ToUTF8(model_->GetResourceById(row, col_id)); | 665 return UTF16ToUTF8(model_->GetResourceById(row, col_id)); |
656 } | 666 } |
657 | 667 |
(...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
706 if (TreeViewColumnIsVisible(treeview_, kTaskManagerVideoMemory)) | 716 if (TreeViewColumnIsVisible(treeview_, kTaskManagerVideoMemory)) |
707 video_memory = GetModelText(row, IDS_TASK_MANAGER_VIDEO_MEMORY_COLUMN); | 717 video_memory = GetModelText(row, IDS_TASK_MANAGER_VIDEO_MEMORY_COLUMN); |
708 std::string fps; | 718 std::string fps; |
709 if (TreeViewColumnIsVisible(treeview_, kTaskManagerFPS)) | 719 if (TreeViewColumnIsVisible(treeview_, kTaskManagerFPS)) |
710 fps = GetModelText(row, IDS_TASK_MANAGER_FPS_COLUMN); | 720 fps = GetModelText(row, IDS_TASK_MANAGER_FPS_COLUMN); |
711 std::string sqlite_memory; | 721 std::string sqlite_memory; |
712 if (TreeViewColumnIsVisible(treeview_, kTaskManagerSqliteMemoryUsed)) { | 722 if (TreeViewColumnIsVisible(treeview_, kTaskManagerSqliteMemoryUsed)) { |
713 sqlite_memory = | 723 sqlite_memory = |
714 GetModelText(row, IDS_TASK_MANAGER_SQLITE_MEMORY_USED_COLUMN); | 724 GetModelText(row, IDS_TASK_MANAGER_SQLITE_MEMORY_USED_COLUMN); |
715 } | 725 } |
| 726 std::string nacl_debug_stub_port; |
| 727 if (TreeViewColumnIsVisible(treeview_, kTaskManagerNaClDebugStubPort)) { |
| 728 nacl_debug_stub_port = |
| 729 GetModelText(row, IDS_TASK_MANAGER_NACL_DEBUG_STUB_PORT_COLUMN); |
| 730 } |
716 | 731 |
717 std::string goats = | 732 std::string goats = |
718 GetModelText(row, IDS_TASK_MANAGER_GOATS_TELEPORTED_COLUMN); | 733 GetModelText(row, IDS_TASK_MANAGER_GOATS_TELEPORTED_COLUMN); |
719 | 734 |
720 gtk_list_store_set(process_list_, iter, | 735 gtk_list_store_set(process_list_, iter, |
721 kTaskManagerIcon, icon, | 736 kTaskManagerIcon, icon, |
722 kTaskManagerTask, task_markup, | 737 kTaskManagerTask, task_markup, |
723 kTaskManagerProfileName, profile_name.c_str(), | 738 kTaskManagerProfileName, profile_name.c_str(), |
724 kTaskManagerSharedMem, shared_mem.c_str(), | 739 kTaskManagerSharedMem, shared_mem.c_str(), |
725 kTaskManagerPrivateMem, priv_mem.c_str(), | 740 kTaskManagerPrivateMem, priv_mem.c_str(), |
726 kTaskManagerCPU, cpu.c_str(), | 741 kTaskManagerCPU, cpu.c_str(), |
727 kTaskManagerNetwork, net.c_str(), | 742 kTaskManagerNetwork, net.c_str(), |
728 kTaskManagerProcessID, procid.c_str(), | 743 kTaskManagerProcessID, procid.c_str(), |
729 kTaskManagerJavaScriptMemory, javascript_memory.c_str(), | 744 kTaskManagerJavaScriptMemory, javascript_memory.c_str(), |
730 kTaskManagerWebCoreImageCache, wk_img_cache.c_str(), | 745 kTaskManagerWebCoreImageCache, wk_img_cache.c_str(), |
731 kTaskManagerWebCoreScriptsCache, wk_scripts_cache.c_str(), | 746 kTaskManagerWebCoreScriptsCache, wk_scripts_cache.c_str(), |
732 kTaskManagerWebCoreCssCache, wk_css_cache.c_str(), | 747 kTaskManagerWebCoreCssCache, wk_css_cache.c_str(), |
733 kTaskManagerVideoMemory, video_memory.c_str(), | 748 kTaskManagerVideoMemory, video_memory.c_str(), |
734 kTaskManagerFPS, fps.c_str(), | 749 kTaskManagerFPS, fps.c_str(), |
735 kTaskManagerSqliteMemoryUsed, sqlite_memory.c_str(), | 750 kTaskManagerSqliteMemoryUsed, sqlite_memory.c_str(), |
| 751 kTaskManagerNaClDebugStubPort, |
| 752 nacl_debug_stub_port.c_str(), |
736 kTaskManagerGoatsTeleported, goats.c_str(), | 753 kTaskManagerGoatsTeleported, goats.c_str(), |
737 -1); | 754 -1); |
738 g_object_unref(icon); | 755 g_object_unref(icon); |
739 g_free(task_markup); | 756 g_free(task_markup); |
740 } | 757 } |
741 | 758 |
742 void TaskManagerGtk::KillSelectedProcesses() { | 759 void TaskManagerGtk::KillSelectedProcesses() { |
743 GtkTreeSelection* selection = gtk_tree_view_get_selection( | 760 GtkTreeSelection* selection = gtk_tree_view_get_selection( |
744 GTK_TREE_VIEW(treeview_)); | 761 GTK_TREE_VIEW(treeview_)); |
745 | 762 |
(...skipping 198 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
944 } | 961 } |
945 | 962 |
946 namespace chrome { | 963 namespace chrome { |
947 | 964 |
948 // Declared in browser_dialogs.h. | 965 // Declared in browser_dialogs.h. |
949 void ShowTaskManager(Browser* browser) { | 966 void ShowTaskManager(Browser* browser) { |
950 TaskManagerGtk::Show(); | 967 TaskManagerGtk::Show(); |
951 } | 968 } |
952 | 969 |
953 } // namespace chrome | 970 } // namespace chrome |
OLD | NEW |