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

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

Issue 18186: generate test_shell.pak and hook up loading net resources from (Closed)
Patch Set: Created 11 years, 11 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
OLDNEW
1 // Copyright (c) 2006-2008 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2006-2008 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 // Creates an instance of the test_shell. 5 // Creates an instance of the test_shell.
6 #include "build/build_config.h" 6 #include "build/build_config.h"
7 7
8 #include <stdlib.h> // required by _set_abort_behavior 8 #include <stdlib.h> // required by _set_abort_behavior
9 9
10 #if defined(OS_WIN) 10 #if defined(OS_WIN)
(...skipping 14 matching lines...) Expand all
25 #include "base/basictypes.h" 25 #include "base/basictypes.h"
26 #include "base/command_line.h" 26 #include "base/command_line.h"
27 #include "base/file_util.h" 27 #include "base/file_util.h"
28 #include "base/icu_util.h" 28 #include "base/icu_util.h"
29 #include "base/memory_debug.h" 29 #include "base/memory_debug.h"
30 #include "base/message_loop.h" 30 #include "base/message_loop.h"
31 #include "base/path_service.h" 31 #include "base/path_service.h"
32 #include "base/process_util.h" 32 #include "base/process_util.h"
33 #include "base/rand_util.h" 33 #include "base/rand_util.h"
34 #include "base/stats_table.h" 34 #include "base/stats_table.h"
35 #include "base/string_piece.h"
36 #include "base/string_util.h" 35 #include "base/string_util.h"
37 #include "base/sys_info.h" 36 #include "base/sys_info.h"
38 #include "base/trace_event.h" 37 #include "base/trace_event.h"
39 #include "net/base/cookie_monster.h" 38 #include "net/base/cookie_monster.h"
40 #include "net/base/net_module.h" 39 #include "net/base/net_module.h"
41 #include "net/http/http_cache.h" 40 #include "net/http/http_cache.h"
42 #include "net/url_request/url_request_context.h" 41 #include "net/url_request/url_request_context.h"
43 #include "webkit/glue/webkit_glue.h" 42 #include "webkit/glue/webkit_glue.h"
44 #include "webkit/glue/window_open_disposition.h" 43 #include "webkit/glue/window_open_disposition.h"
45 #include "webkit/tools/test_shell/simple_resource_loader_bridge.h" 44 #include "webkit/tools/test_shell/simple_resource_loader_bridge.h"
46 #include "webkit/tools/test_shell/test_shell.h" 45 #include "webkit/tools/test_shell/test_shell.h"
47 #include "webkit/tools/test_shell/test_shell_request_context.h" 46 #include "webkit/tools/test_shell/test_shell_request_context.h"
48 #include "webkit/tools/test_shell/test_shell_switches.h" 47 #include "webkit/tools/test_shell/test_shell_switches.h"
49 48
50 #include <iostream> 49 #include <iostream>
51 using namespace std; 50 using namespace std;
52 51
53 static const size_t kPathBufSize = 2048; 52 static const size_t kPathBufSize = 2048;
54 53
55 namespace { 54 namespace {
56 55
57 // StatsTable initialization parameters. 56 // StatsTable initialization parameters.
58 static const char* kStatsFilePrefix = "testshell_"; 57 static const char* kStatsFilePrefix = "testshell_";
59 static int kStatsFileThreads = 20; 58 static int kStatsFileThreads = 20;
60 static int kStatsFileCounters = 200; 59 static int kStatsFileCounters = 200;
61 60
62 #if defined(OS_WIN) 61 #if defined(OS_WIN)
63 StringPiece GetRawDataResource(HMODULE module, int resource_id) {
64 void* data_ptr;
65 size_t data_size;
66 return base::GetDataResourceFromModule(module, resource_id, &data_ptr,
67 &data_size) ?
68 StringPiece(static_cast<char*>(data_ptr), data_size) : StringPiece();
69 }
70
71 // This is called indirectly by the network layer to access resources.
72 StringPiece NetResourceProvider(int key) {
73 return GetRawDataResource(::GetModuleHandle(NULL), key);
74 }
75
76 // This test approximates whether you have the Windows XP theme selected by 62 // This test approximates whether you have the Windows XP theme selected by
77 // inspecting a couple of metrics. It does not catch all cases, but it does 63 // inspecting a couple of metrics. It does not catch all cases, but it does
78 // pick up on classic vs xp, and normal vs large fonts. Something it misses 64 // pick up on classic vs xp, and normal vs large fonts. Something it misses
79 // is changes to the color scheme (which will infact cause pixel test 65 // is changes to the color scheme (which will infact cause pixel test
80 // failures). 66 // failures).
81 // 67 //
82 // ** Expected dependencies ** 68 // ** Expected dependencies **
83 // + Theme: Windows XP 69 // + Theme: Windows XP
84 // + Color scheme: Default (blue) 70 // + Color scheme: Default (blue)
85 // + Font size: Normal 71 // + Font size: Normal
(...skipping 131 matching lines...) Expand 10 before | Expand all | Expand 10 after
217 } 203 }
218 204
219 // Initializing with a default context, which means no on-disk cookie DB, 205 // Initializing with a default context, which means no on-disk cookie DB,
220 // and no support for directory listings. 206 // and no support for directory listings.
221 SimpleResourceLoaderBridge::Init( 207 SimpleResourceLoaderBridge::Init(
222 new TestShellRequestContext(cache_path, cache_mode, layout_test_mode)); 208 new TestShellRequestContext(cache_path, cache_mode, layout_test_mode));
223 209
224 // Load ICU data tables 210 // Load ICU data tables
225 icu_util::Initialize(); 211 icu_util::Initialize();
226 212
213 // Config the network module so it has access to a limited set of resources.
214 net::NetModule::SetResourceProvider(TestShell::NetResourceProvider);
215
227 #if defined(OS_WIN) 216 #if defined(OS_WIN)
228 // Config the network module so it has access to a limited set of resources.
229 net::NetModule::SetResourceProvider(NetResourceProvider);
230
231 INITCOMMONCONTROLSEX InitCtrlEx; 217 INITCOMMONCONTROLSEX InitCtrlEx;
232 218
233 InitCtrlEx.dwSize = sizeof(INITCOMMONCONTROLSEX); 219 InitCtrlEx.dwSize = sizeof(INITCOMMONCONTROLSEX);
234 InitCtrlEx.dwICC = ICC_STANDARD_CLASSES; 220 InitCtrlEx.dwICC = ICC_STANDARD_CLASSES;
235 InitCommonControlsEx(&InitCtrlEx); 221 InitCommonControlsEx(&InitCtrlEx);
236 #endif 222 #endif
237 223
238 TestShell::InitializeTestShell(layout_test_mode); 224 TestShell::InitializeTestShell(layout_test_mode);
239 225
240 if (parsed_command_line.HasSwitch(test_shell::kAllowScriptsToCloseWindows)) 226 if (parsed_command_line.HasSwitch(test_shell::kAllowScriptsToCloseWindows))
(...skipping 162 matching lines...) Expand 10 before | Expand all | Expand 10 after
403 389
404 // Tear down shared StatsTable; prevents unit_tests from leaking it. 390 // Tear down shared StatsTable; prevents unit_tests from leaking it.
405 StatsTable::set_current(NULL); 391 StatsTable::set_current(NULL);
406 delete table; 392 delete table;
407 393
408 #ifdef _CRTDBG_MAP_ALLOC 394 #ifdef _CRTDBG_MAP_ALLOC
409 _CrtDumpMemoryLeaks(); 395 _CrtDumpMemoryLeaks();
410 #endif 396 #endif
411 return 0; 397 return 0;
412 } 398 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698