Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(414)

Side by Side Diff: webkit/tools/test_shell/test_shell_gtk.cc

Issue 12163003: Add FilePath to base namespace. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 7 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « webkit/tools/test_shell/test_shell.cc ('k') | webkit/tools/test_shell/test_shell_mac.mm » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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 <errno.h> 7 #include <errno.h>
8 #include <fcntl.h> 8 #include <fcntl.h>
9 #include <fontconfig/fontconfig.h> 9 #include <fontconfig/fontconfig.h>
10 #include <gtk/gtk.h> 10 #include <gtk/gtk.h>
(...skipping 23 matching lines...) Expand all
34 #include "webkit/plugins/npapi/plugin_list.h" 34 #include "webkit/plugins/npapi/plugin_list.h"
35 #include "webkit/tools/test_shell/test_navigation_controller.h" 35 #include "webkit/tools/test_shell/test_navigation_controller.h"
36 #include "webkit/tools/test_shell/test_shell_webkit_init.h" 36 #include "webkit/tools/test_shell/test_shell_webkit_init.h"
37 #include "webkit/tools/test_shell/test_webview_delegate.h" 37 #include "webkit/tools/test_shell/test_webview_delegate.h"
38 38
39 using WebKit::WebPoint; 39 using WebKit::WebPoint;
40 using WebKit::WebWidget; 40 using WebKit::WebWidget;
41 41
42 namespace { 42 namespace {
43 43
44 // Convert a FilePath into an FcChar* (used by fontconfig). 44 // Convert a base::FilePath into an FcChar* (used by fontconfig).
45 // The pointer only lives for the duration for the expression. 45 // The pointer only lives for the duration for the expression.
46 const FcChar8* FilePathAsFcChar(const FilePath& path) { 46 const FcChar8* FilePathAsFcChar(const base::FilePath& path) {
47 return reinterpret_cast<const FcChar8*>(path.value().c_str()); 47 return reinterpret_cast<const FcChar8*>(path.value().c_str());
48 } 48 }
49 49
50 void TerminationSignalHandler(int signatl) { 50 void TerminationSignalHandler(int signatl) {
51 TestShell::ShutdownTestShell(); 51 TestShell::ShutdownTestShell();
52 exit(0); 52 exit(0);
53 } 53 }
54 54
55 // GTK callbacks ------------------------------------------------------ 55 // GTK callbacks ------------------------------------------------------
56 56
(...skipping 95 matching lines...) Expand 10 before | Expand all | Expand 10 after
152 152
153 // static 153 // static
154 void TestShell::InitializeTestShell(bool layout_test_mode, 154 void TestShell::InitializeTestShell(bool layout_test_mode,
155 bool allow_external_pages) { 155 bool allow_external_pages) {
156 window_list_ = new WindowList; 156 window_list_ = new WindowList;
157 layout_test_mode_ = layout_test_mode; 157 layout_test_mode_ = layout_test_mode;
158 allow_external_pages_ = allow_external_pages; 158 allow_external_pages_ = allow_external_pages;
159 159
160 web_prefs_ = new webkit_glue::WebPreferences; 160 web_prefs_ = new webkit_glue::WebPreferences;
161 161
162 FilePath data_path; 162 base::FilePath data_path;
163 PathService::Get(base::DIR_EXE, &data_path); 163 PathService::Get(base::DIR_EXE, &data_path);
164 data_path = data_path.Append("test_shell.pak"); 164 data_path = data_path.Append("test_shell.pak");
165 ResourceBundle::InitSharedInstanceWithPakPath(data_path); 165 ResourceBundle::InitSharedInstanceWithPakPath(data_path);
166 166
167 FilePath resources_dir; 167 base::FilePath resources_dir;
168 PathService::Get(base::DIR_SOURCE_ROOT, &resources_dir); 168 PathService::Get(base::DIR_SOURCE_ROOT, &resources_dir);
169 resources_dir = resources_dir.Append("webkit/tools/test_shell/resources"); 169 resources_dir = resources_dir.Append("webkit/tools/test_shell/resources");
170 170
171 ResetWebPreferences(); 171 ResetWebPreferences();
172 172
173 // We wish to make the layout tests reproducable with respect to fonts. Skia 173 // We wish to make the layout tests reproducable with respect to fonts. Skia
174 // uses fontconfig to resolve font family names from WebKit into actual font 174 // uses fontconfig to resolve font family names from WebKit into actual font
175 // files found on the current system. This means that fonts vary based on the 175 // files found on the current system. This means that fonts vary based on the
176 // system and also on the fontconfig configuration. 176 // system and also on the fontconfig configuration.
177 // 177 //
178 // To avoid this we initialise fontconfig here and install a configuration 178 // To avoid this we initialise fontconfig here and install a configuration
179 // which only knows about a few, select, fonts. 179 // which only knows about a few, select, fonts.
180 180
181 // We have fontconfig parse a config file from our resources file. This 181 // We have fontconfig parse a config file from our resources file. This
182 // sets a number of aliases ("sans"->"Arial" etc), but doesn't include any 182 // sets a number of aliases ("sans"->"Arial" etc), but doesn't include any
183 // font directories. 183 // font directories.
184 if (layout_test_mode) { 184 if (layout_test_mode) {
185 FcInit(); 185 FcInit();
186 186
187 FcConfig* fontcfg = FcConfigCreate(); 187 FcConfig* fontcfg = FcConfigCreate();
188 FilePath fontconfig_path = resources_dir.Append("fonts.conf"); 188 base::FilePath fontconfig_path = resources_dir.Append("fonts.conf");
189 if (!FcConfigParseAndLoad(fontcfg, FilePathAsFcChar(fontconfig_path), 189 if (!FcConfigParseAndLoad(fontcfg, FilePathAsFcChar(fontconfig_path),
190 true)) { 190 true)) {
191 LOG(FATAL) << "Failed to parse fontconfig config file"; 191 LOG(FATAL) << "Failed to parse fontconfig config file";
192 } 192 }
193 193
194 // This is the list of fonts that fontconfig will know about. It 194 // This is the list of fonts that fontconfig will know about. It
195 // will try its best to match based only on the fonts here in. The 195 // will try its best to match based only on the fonts here in. The
196 // paths are where these fonts are found on our Ubuntu boxes. 196 // paths are where these fonts are found on our Ubuntu boxes.
197 static const char *const fonts[] = { 197 static const char *const fonts[] = {
198 "/usr/share/fonts/truetype/kochi/kochi-gothic.ttf", 198 "/usr/share/fonts/truetype/kochi/kochi-gothic.ttf",
(...skipping 57 matching lines...) Expand 10 before | Expand all | Expand 10 after
256 << "Without this, some layout tests will fail. " 256 << "Without this, some layout tests will fail. "
257 << "See http://code.google.com/p/chromium/wiki/" 257 << "See http://code.google.com/p/chromium/wiki/"
258 << "LinuxBuildInstructionsPrerequisites for more."; 258 << "LinuxBuildInstructionsPrerequisites for more.";
259 } else { 259 } else {
260 if (!FcConfigAppFontAddFile(fontcfg, (FcChar8 *) font)) 260 if (!FcConfigAppFontAddFile(fontcfg, (FcChar8 *) font))
261 LOG(FATAL) << "Failed to load font " << font; 261 LOG(FATAL) << "Failed to load font " << font;
262 } 262 }
263 } 263 }
264 264
265 // Also load the layout-test-specific "Ahem" font. 265 // Also load the layout-test-specific "Ahem" font.
266 FilePath ahem_path = resources_dir.Append("AHEM____.TTF"); 266 base::FilePath ahem_path = resources_dir.Append("AHEM____.TTF");
267 if (!FcConfigAppFontAddFile(fontcfg, FilePathAsFcChar(ahem_path))) { 267 if (!FcConfigAppFontAddFile(fontcfg, FilePathAsFcChar(ahem_path))) {
268 LOG(FATAL) << "Failed to load font " << ahem_path.value().c_str(); 268 LOG(FATAL) << "Failed to load font " << ahem_path.value().c_str();
269 } 269 }
270 270
271 if (!FcConfigSetCurrent(fontcfg)) 271 if (!FcConfigSetCurrent(fontcfg))
272 LOG(FATAL) << "Failed to set the default font configuration"; 272 LOG(FATAL) << "Failed to set the default font configuration";
273 } 273 }
274 274
275 // Install an signal handler so we clean up after ourselves. 275 // Install an signal handler so we clean up after ourselves.
276 signal(SIGINT, TerminationSignalHandler); 276 signal(SIGINT, TerminationSignalHandler);
(...skipping 224 matching lines...) Expand 10 before | Expand all | Expand 10 after
501 // only resize back to the default when running tests 501 // only resize back to the default when running tests
502 if (layout_test_mode()) 502 if (layout_test_mode())
503 SizeToDefault(); 503 SizeToDefault();
504 } 504 }
505 505
506 navigation_controller_->LoadEntry( 506 navigation_controller_->LoadEntry(
507 new TestNavigationEntry(-1, url, frame_name)); 507 new TestNavigationEntry(-1, url, frame_name));
508 } 508 }
509 509
510 bool TestShell::PromptForSaveFile(const wchar_t* prompt_title, 510 bool TestShell::PromptForSaveFile(const wchar_t* prompt_title,
511 FilePath* result) { 511 base::FilePath* result) {
512 GtkWidget* dialog; 512 GtkWidget* dialog;
513 dialog = gtk_file_chooser_dialog_new(WideToUTF8(prompt_title).c_str(), 513 dialog = gtk_file_chooser_dialog_new(WideToUTF8(prompt_title).c_str(),
514 GTK_WINDOW(m_mainWnd), 514 GTK_WINDOW(m_mainWnd),
515 GTK_FILE_CHOOSER_ACTION_SAVE, 515 GTK_FILE_CHOOSER_ACTION_SAVE,
516 GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL, 516 GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL,
517 GTK_STOCK_SAVE, GTK_RESPONSE_ACCEPT, 517 GTK_STOCK_SAVE, GTK_RESPONSE_ACCEPT,
518 NULL); // Terminate (button, id) pairs. 518 NULL); // Terminate (button, id) pairs.
519 gtk_file_chooser_set_do_overwrite_confirmation(GTK_FILE_CHOOSER(dialog), 519 gtk_file_chooser_set_do_overwrite_confirmation(GTK_FILE_CHOOSER(dialog),
520 TRUE); 520 TRUE);
521 int dialog_result = gtk_dialog_run(GTK_DIALOG(dialog)); 521 int dialog_result = gtk_dialog_run(GTK_DIALOG(dialog));
522 if (dialog_result != GTK_RESPONSE_ACCEPT) { 522 if (dialog_result != GTK_RESPONSE_ACCEPT) {
523 gtk_widget_destroy(dialog); 523 gtk_widget_destroy(dialog);
524 return false; 524 return false;
525 } 525 }
526 char* path = gtk_file_chooser_get_filename(GTK_FILE_CHOOSER(dialog)); 526 char* path = gtk_file_chooser_get_filename(GTK_FILE_CHOOSER(dialog));
527 gtk_widget_destroy(dialog); 527 gtk_widget_destroy(dialog);
528 *result = FilePath(path); 528 *result = base::FilePath(path);
529 g_free(path); 529 g_free(path);
530 return true; 530 return true;
531 } 531 }
532 532
533 // static 533 // static
534 std::string TestShell::RewriteLocalUrl(const std::string& url) { 534 std::string TestShell::RewriteLocalUrl(const std::string& url) {
535 // Convert file:///tmp/LayoutTests urls to the actual location on disk. 535 // Convert file:///tmp/LayoutTests urls to the actual location on disk.
536 const char kPrefix[] = "file:///tmp/LayoutTests/"; 536 const char kPrefix[] = "file:///tmp/LayoutTests/";
537 const int kPrefixLen = arraysize(kPrefix) - 1; 537 const int kPrefixLen = arraysize(kPrefix) - 1;
538 538
539 std::string new_url(url); 539 std::string new_url(url);
540 if (url.compare(0, kPrefixLen, kPrefix, kPrefixLen) == 0) { 540 if (url.compare(0, kPrefixLen, kPrefix, kPrefixLen) == 0) {
541 FilePath replace_path; 541 base::FilePath replace_path;
542 PathService::Get(base::DIR_SOURCE_ROOT, &replace_path); 542 PathService::Get(base::DIR_SOURCE_ROOT, &replace_path);
543 replace_path = replace_path.Append( 543 replace_path = replace_path.Append(
544 "third_party/WebKit/LayoutTests/"); 544 "third_party/WebKit/LayoutTests/");
545 new_url = std::string("file://") + replace_path.value() + 545 new_url = std::string("file://") + replace_path.value() +
546 url.substr(kPrefixLen); 546 url.substr(kPrefixLen);
547 } 547 }
548 548
549 return new_url; 549 return new_url;
550 } 550 }
551 551
(...skipping 24 matching lines...) Expand all
576 case IDR_BROKENIMAGE: 576 case IDR_BROKENIMAGE:
577 resource_id = IDR_BROKENIMAGE_TESTSHELL; 577 resource_id = IDR_BROKENIMAGE_TESTSHELL;
578 break; 578 break;
579 case IDR_TEXTAREA_RESIZER: 579 case IDR_TEXTAREA_RESIZER:
580 resource_id = IDR_TEXTAREA_RESIZER_TESTSHELL; 580 resource_id = IDR_TEXTAREA_RESIZER_TESTSHELL;
581 break; 581 break;
582 } 582 }
583 // TODO(flackr): Pass scale_factor. 583 // TODO(flackr): Pass scale_factor.
584 return TestShell::ResourceProvider(resource_id); 584 return TestShell::ResourceProvider(resource_id);
585 } 585 }
OLDNEW
« no previous file with comments | « webkit/tools/test_shell/test_shell.cc ('k') | webkit/tools/test_shell/test_shell_mac.mm » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698