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 "webkit/tools/test_shell/test_shell.h" | 5 #include "webkit/tools/test_shell/test_shell.h" |
6 | 6 |
7 #include <windows.h> | 7 #include <windows.h> |
8 #include <commdlg.h> | 8 #include <commdlg.h> |
9 #include <objbase.h> | 9 #include <objbase.h> |
10 #include <process.h> | 10 #include <process.h> |
(...skipping 83 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
94 // Warning: Don't use the heap in this function. It may be corrupted. | 94 // Warning: Don't use the heap in this function. It may be corrupted. |
95 if (!g_currentTestName[0]) | 95 if (!g_currentTestName[0]) |
96 return false; | 96 return false; |
97 | 97 |
98 // Try to rename the minidump file to include the crashed test's name. | 98 // Try to rename the minidump file to include the crashed test's name. |
99 // StackString uses the stack but overflows onto the heap. But we don't | 99 // StackString uses the stack but overflows onto the heap. But we don't |
100 // care too much about being completely correct here, since most crashes | 100 // care too much about being completely correct here, since most crashes |
101 // will be happening on developers' machines where they have debuggers. | 101 // will be happening on developers' machines where they have debuggers. |
102 base::StackString16<kPathBufSize * 2> origPath; | 102 base::StackString16<kPathBufSize * 2> origPath; |
103 origPath->append(dumpPath); | 103 origPath->append(dumpPath); |
104 origPath->push_back(FilePath::kSeparators[0]); | 104 origPath->push_back(base::FilePath::kSeparators[0]); |
105 origPath->append(minidumpID); | 105 origPath->append(minidumpID); |
106 origPath->append(L".dmp"); | 106 origPath->append(L".dmp"); |
107 | 107 |
108 base::StackString16<kPathBufSize * 2> newPath; | 108 base::StackString16<kPathBufSize * 2> newPath; |
109 newPath->append(dumpPath); | 109 newPath->append(dumpPath); |
110 newPath->push_back(FilePath::kSeparators[0]); | 110 newPath->push_back(base::FilePath::kSeparators[0]); |
111 newPath->append(g_currentTestName); | 111 newPath->append(g_currentTestName); |
112 newPath->append(L"-"); | 112 newPath->append(L"-"); |
113 newPath->append(minidumpID); | 113 newPath->append(minidumpID); |
114 newPath->append(L".dmp"); | 114 newPath->append(L".dmp"); |
115 | 115 |
116 // May use the heap, but oh well. If this fails, we'll just have the | 116 // May use the heap, but oh well. If this fails, we'll just have the |
117 // original dump file lying around. | 117 // original dump file lying around. |
118 _wrename(origPath->c_str(), newPath->c_str()); | 118 _wrename(origPath->c_str(), newPath->c_str()); |
119 | 119 |
120 return false; | 120 return false; |
121 } | 121 } |
122 | 122 |
123 // Helper method for getting the path to the test shell resources directory. | 123 // Helper method for getting the path to the test shell resources directory. |
124 FilePath GetResourcesFilePath() { | 124 base::FilePath GetResourcesFilePath() { |
125 FilePath path; | 125 base::FilePath path; |
126 PathService::Get(base::DIR_SOURCE_ROOT, &path); | 126 PathService::Get(base::DIR_SOURCE_ROOT, &path); |
127 path = path.AppendASCII("webkit"); | 127 path = path.AppendASCII("webkit"); |
128 path = path.AppendASCII("tools"); | 128 path = path.AppendASCII("tools"); |
129 path = path.AppendASCII("test_shell"); | 129 path = path.AppendASCII("test_shell"); |
130 return path.AppendASCII("resources"); | 130 return path.AppendASCII("resources"); |
131 } | 131 } |
132 | 132 |
133 static base::StringPiece GetRawDataResource(HMODULE module, int resource_id) { | 133 static base::StringPiece GetRawDataResource(HMODULE module, int resource_id) { |
134 void* data_ptr; | 134 void* data_ptr; |
135 size_t data_size; | 135 size_t data_size; |
(...skipping 108 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
244 } | 244 } |
245 } | 245 } |
246 | 246 |
247 std::string TestShell::RewriteLocalUrl(const std::string& url) { | 247 std::string TestShell::RewriteLocalUrl(const std::string& url) { |
248 // Convert file:///tmp/LayoutTests urls to the actual location on disk. | 248 // Convert file:///tmp/LayoutTests urls to the actual location on disk. |
249 const char kPrefix[] = "file:///tmp/LayoutTests/"; | 249 const char kPrefix[] = "file:///tmp/LayoutTests/"; |
250 const int kPrefixLen = arraysize(kPrefix) - 1; | 250 const int kPrefixLen = arraysize(kPrefix) - 1; |
251 | 251 |
252 std::string new_url(url); | 252 std::string new_url(url); |
253 if (url.compare(0, kPrefixLen, kPrefix, kPrefixLen) == 0) { | 253 if (url.compare(0, kPrefixLen, kPrefix, kPrefixLen) == 0) { |
254 FilePath replace_url; | 254 base::FilePath replace_url; |
255 PathService::Get(base::DIR_EXE, &replace_url); | 255 PathService::Get(base::DIR_EXE, &replace_url); |
256 replace_url = replace_url.DirName(); | 256 replace_url = replace_url.DirName(); |
257 replace_url = replace_url.DirName(); | 257 replace_url = replace_url.DirName(); |
258 replace_url = replace_url.AppendASCII("third_party"); | 258 replace_url = replace_url.AppendASCII("third_party"); |
259 replace_url = replace_url.AppendASCII("WebKit"); | 259 replace_url = replace_url.AppendASCII("WebKit"); |
260 replace_url = replace_url.AppendASCII("LayoutTests"); | 260 replace_url = replace_url.AppendASCII("LayoutTests"); |
261 string16 replace_url_str = replace_url.value(); | 261 string16 replace_url_str = replace_url.value(); |
262 replace_url_str.push_back(L'/'); | 262 replace_url_str.push_back(L'/'); |
263 new_url = std::string("file:///") + | 263 new_url = std::string("file:///") + |
264 UTF16ToUTF8(replace_url_str).append(url.substr(kPrefixLen)); | 264 UTF16ToUTF8(replace_url_str).append(url.substr(kPrefixLen)); |
(...skipping 368 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
633 if (LOWORD(wParam) == IDOK || LOWORD(wParam) == IDCANCEL) { | 633 if (LOWORD(wParam) == IDOK || LOWORD(wParam) == IDCANCEL) { |
634 EndDialog(hDlg, LOWORD(wParam)); | 634 EndDialog(hDlg, LOWORD(wParam)); |
635 return (INT_PTR)TRUE; | 635 return (INT_PTR)TRUE; |
636 } | 636 } |
637 break; | 637 break; |
638 } | 638 } |
639 return (INT_PTR)FALSE; | 639 return (INT_PTR)FALSE; |
640 } | 640 } |
641 | 641 |
642 bool TestShell::PromptForSaveFile(const wchar_t* prompt_title, | 642 bool TestShell::PromptForSaveFile(const wchar_t* prompt_title, |
643 FilePath* result) { | 643 base::FilePath* result) { |
644 wchar_t path_buf[MAX_PATH] = L"data.txt"; | 644 wchar_t path_buf[MAX_PATH] = L"data.txt"; |
645 | 645 |
646 OPENFILENAME info = {0}; | 646 OPENFILENAME info = {0}; |
647 info.lStructSize = sizeof(info); | 647 info.lStructSize = sizeof(info); |
648 info.hwndOwner = m_mainWnd; | 648 info.hwndOwner = m_mainWnd; |
649 info.hInstance = instance_handle_; | 649 info.hInstance = instance_handle_; |
650 info.lpstrFilter = L"*.txt\0"; | 650 info.lpstrFilter = L"*.txt\0"; |
651 info.lpstrFile = path_buf; | 651 info.lpstrFile = path_buf; |
652 info.nMaxFile = arraysize(path_buf); | 652 info.nMaxFile = arraysize(path_buf); |
653 info.lpstrTitle = prompt_title; | 653 info.lpstrTitle = prompt_title; |
654 if (!GetSaveFileName(&info)) | 654 if (!GetSaveFileName(&info)) |
655 return false; | 655 return false; |
656 | 656 |
657 *result = FilePath(info.lpstrFile); | 657 *result = base::FilePath(info.lpstrFile); |
658 return true; | 658 return true; |
659 } | 659 } |
660 | 660 |
661 // static | 661 // static |
662 void TestShell::ShowStartupDebuggingDialog() { | 662 void TestShell::ShowStartupDebuggingDialog() { |
663 MessageBox(NULL, L"attach to me?", L"test_shell", MB_OK); | 663 MessageBox(NULL, L"attach to me?", L"test_shell", MB_OK); |
664 } | 664 } |
665 | 665 |
666 // static | 666 // static |
667 base::StringPiece TestShell::ResourceProvider(int key) { | 667 base::StringPiece TestShell::ResourceProvider(int key) { |
(...skipping 14 matching lines...) Expand all Loading... |
682 | 682 |
683 // TODO(tc): Convert this to using resources from test_shell.rc. | 683 // TODO(tc): Convert this to using resources from test_shell.rc. |
684 base::StringPiece TestShellWebKitInit::GetDataResource( | 684 base::StringPiece TestShellWebKitInit::GetDataResource( |
685 int resource_id, | 685 int resource_id, |
686 ui::ScaleFactor scale_factor) { | 686 ui::ScaleFactor scale_factor) { |
687 switch (resource_id) { | 687 switch (resource_id) { |
688 case IDR_BROKENIMAGE: { | 688 case IDR_BROKENIMAGE: { |
689 // Use webkit's broken image icon (16x16) | 689 // Use webkit's broken image icon (16x16) |
690 static std::string broken_image_data; | 690 static std::string broken_image_data; |
691 if (broken_image_data.empty()) { | 691 if (broken_image_data.empty()) { |
692 FilePath path = GetResourcesFilePath(); | 692 base::FilePath path = GetResourcesFilePath(); |
693 path = path.AppendASCII("missingImage.gif"); | 693 path = path.AppendASCII("missingImage.gif"); |
694 bool success = file_util::ReadFileToString(path, &broken_image_data); | 694 bool success = file_util::ReadFileToString(path, &broken_image_data); |
695 if (!success) { | 695 if (!success) { |
696 LOG(FATAL) << "Failed reading: " << path.value(); | 696 LOG(FATAL) << "Failed reading: " << path.value(); |
697 } | 697 } |
698 } | 698 } |
699 return broken_image_data; | 699 return broken_image_data; |
700 } | 700 } |
701 case IDR_TEXTAREA_RESIZER: { | 701 case IDR_TEXTAREA_RESIZER: { |
702 // Use webkit's text area resizer image. | 702 // Use webkit's text area resizer image. |
703 static std::string resize_corner_data; | 703 static std::string resize_corner_data; |
704 if (resize_corner_data.empty()) { | 704 if (resize_corner_data.empty()) { |
705 FilePath path = GetResourcesFilePath(); | 705 base::FilePath path = GetResourcesFilePath(); |
706 path = path.AppendASCII("textAreaResizeCorner.png"); | 706 path = path.AppendASCII("textAreaResizeCorner.png"); |
707 bool success = file_util::ReadFileToString(path, &resize_corner_data); | 707 bool success = file_util::ReadFileToString(path, &resize_corner_data); |
708 if (!success) { | 708 if (!success) { |
709 LOG(FATAL) << "Failed reading: " << path.value(); | 709 LOG(FATAL) << "Failed reading: " << path.value(); |
710 } | 710 } |
711 } | 711 } |
712 return resize_corner_data; | 712 return resize_corner_data; |
713 } | 713 } |
714 | 714 |
715 case IDR_SEARCH_CANCEL: | 715 case IDR_SEARCH_CANCEL: |
(...skipping 28 matching lines...) Expand all Loading... |
744 | 744 |
745 bool EnsureFontLoaded(HFONT font) { | 745 bool EnsureFontLoaded(HFONT font) { |
746 return true; | 746 return true; |
747 } | 747 } |
748 | 748 |
749 bool DownloadUrl(const std::string& url, HWND caller_window) { | 749 bool DownloadUrl(const std::string& url, HWND caller_window) { |
750 return false; | 750 return false; |
751 } | 751 } |
752 | 752 |
753 } // namespace webkit_glue | 753 } // namespace webkit_glue |
OLD | NEW |