forked from nwjs/chromium.src
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathlayout_test_runtime_flags.h
More file actions
204 lines (155 loc) · 8.63 KB
/
layout_test_runtime_flags.h
File metadata and controls
204 lines (155 loc) · 8.63 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
// Copyright 2016 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#ifndef CONTENT_SHELL_TEST_RUNNER_LAYOUT_TEST_RUNTIME_FLAGS_H_
#define CONTENT_SHELL_TEST_RUNNER_LAYOUT_TEST_RUNTIME_FLAGS_H_
#include <string>
#include "base/logging.h"
#include "base/macros.h"
#include "base/values.h"
#include "content/shell/test_runner/test_runner_export.h"
#include "content/shell/test_runner/tracked_dictionary.h"
namespace test_runner {
// LayoutTestRuntimeFlags stores flags controlled by layout tests at runtime
// (i.e. by calling testRunner.dumpAsText() or testRunner.waitUntilDone()).
// Changes to the flags are tracked (to help replicate them across renderers).
class TEST_RUNNER_EXPORT LayoutTestRuntimeFlags {
public:
// Creates default flags (see also the Reset method).
LayoutTestRuntimeFlags();
// Resets all the values to their defaults.
void Reset();
TrackedDictionary& tracked_dictionary() { return dict_; }
#define DEFINE_BOOL_LAYOUT_TEST_RUNTIME_FLAG(name) \
bool name() const { \
bool result; \
bool found = dict_.current_values().GetBoolean(#name, &result); \
DCHECK(found); \
return result; \
} \
void set_##name(bool new_value) { dict_.SetBoolean(#name, new_value); }
#define DEFINE_STRING_LAYOUT_TEST_RUNTIME_FLAG(name) \
std::string name() const { \
std::string result; \
bool found = dict_.current_values().GetString(#name, &result); \
DCHECK(found); \
return result; \
} \
void set_##name(const std::string& new_value) { \
dict_.SetString(#name, new_value); \
}
// If true, the test runner will generate pixel results.
DEFINE_BOOL_LAYOUT_TEST_RUNTIME_FLAG(generate_pixel_results)
// If true, the test runner will produce a plain text dump.
DEFINE_BOOL_LAYOUT_TEST_RUNTIME_FLAG(dump_as_text)
// If true and dump_as_text is false, the test runner will produce a dump of
// the DOM.
DEFINE_BOOL_LAYOUT_TEST_RUNTIME_FLAG(dump_as_markup)
// If true and both dump_as_text and dump_as_markup are false, the test runner
// will dump a text representation of the layout.
DEFINE_BOOL_LAYOUT_TEST_RUNTIME_FLAG(dump_as_layout)
// If true, the test runner will recursively dump all frames as text, markup
// or layout depending on which of dump_as_text, dump_as_markup and
// dump_as_layout is effective.
DEFINE_BOOL_LAYOUT_TEST_RUNTIME_FLAG(dump_child_frames)
// If true, layout is to target printed pages.
DEFINE_BOOL_LAYOUT_TEST_RUNTIME_FLAG(is_printing)
// If this is non-empty and is_printing is true, pixel dump will be for the
// named frame printed.
DEFINE_STRING_LAYOUT_TEST_RUNTIME_FLAG(printing_frame)
// If true, don't dump output until notifyDone is called.
DEFINE_BOOL_LAYOUT_TEST_RUNTIME_FLAG(wait_until_done)
// If true, ends the test when a URL is loaded externally via
// WebLocalFrameClient::loadURLExternally().
DEFINE_BOOL_LAYOUT_TEST_RUNTIME_FLAG(wait_until_external_url_load)
// Causes navigation actions just printout the intended navigation instead
// of taking you to the page. This is used for cases like mailto, where you
// don't actually want to open the mail program.
DEFINE_BOOL_LAYOUT_TEST_RUNTIME_FLAG(policy_delegate_enabled)
// Toggles the behavior of the policy delegate. If true, then navigations
// will be allowed. Otherwise, they will be ignored (dropped).
DEFINE_BOOL_LAYOUT_TEST_RUNTIME_FLAG(policy_delegate_is_permissive)
// If true, the policy delegate will signal layout test completion.
DEFINE_BOOL_LAYOUT_TEST_RUNTIME_FLAG(policy_delegate_should_notify_done)
// If true, the test runner will draw the bounds of the current selection rect
// taking possible transforms of the selection rect into account.
DEFINE_BOOL_LAYOUT_TEST_RUNTIME_FLAG(dump_selection_rect)
// If true, the test runner will dump the drag image as pixel results.
DEFINE_BOOL_LAYOUT_TEST_RUNTIME_FLAG(dump_drag_image)
// Contents of Accept-Language HTTP header requested by the test.
DEFINE_STRING_LAYOUT_TEST_RUNTIME_FLAG(accept_languages)
// Flags influencing behavior of MockContentSettingsClient.
DEFINE_BOOL_LAYOUT_TEST_RUNTIME_FLAG(images_allowed)
DEFINE_BOOL_LAYOUT_TEST_RUNTIME_FLAG(scripts_allowed)
DEFINE_BOOL_LAYOUT_TEST_RUNTIME_FLAG(storage_allowed)
DEFINE_BOOL_LAYOUT_TEST_RUNTIME_FLAG(plugins_allowed)
DEFINE_BOOL_LAYOUT_TEST_RUNTIME_FLAG(running_insecure_content_allowed)
DEFINE_BOOL_LAYOUT_TEST_RUNTIME_FLAG(
dump_web_content_settings_client_callbacks)
DEFINE_BOOL_LAYOUT_TEST_RUNTIME_FLAG(autoplay_allowed)
// If true, the test runner will write a descriptive line for each editing
// command.
DEFINE_BOOL_LAYOUT_TEST_RUNTIME_FLAG(dump_editting_callbacks)
// If true, the test runner will output a descriptive line for each frame
// load callback.
DEFINE_BOOL_LAYOUT_TEST_RUNTIME_FLAG(dump_frame_load_callbacks)
// If true, the test runner will output a descriptive line for each
// PingLoader dispatched.
DEFINE_BOOL_LAYOUT_TEST_RUNTIME_FLAG(dump_ping_loader_callbacks)
// If true, the test runner will output a line of the user gesture status
// text for some frame load callbacks.
DEFINE_BOOL_LAYOUT_TEST_RUNTIME_FLAG(
dump_user_gesture_in_frame_load_callbacks)
// If true, the test runner will output a descriptive line for each resource
// load callback.
DEFINE_BOOL_LAYOUT_TEST_RUNTIME_FLAG(dump_resource_load_callbacks)
// If true, the test runner will output the MIME type for each resource that
// was loaded.
DEFINE_BOOL_LAYOUT_TEST_RUNTIME_FLAG(dump_resource_response_mime_types)
// If true, content_shell will dump the default navigation policy passed to
// WebLocalFrameClient::decidePolicyForNavigation.
DEFINE_BOOL_LAYOUT_TEST_RUNTIME_FLAG(dump_navigation_policy)
// If true, output a message when the page title is changed.
DEFINE_BOOL_LAYOUT_TEST_RUNTIME_FLAG(dump_title_changes)
// If true, the test runner will print out the icon change notifications.
DEFINE_BOOL_LAYOUT_TEST_RUNTIME_FLAG(dump_icon_changes)
// If true, the console messages produced by the page will
// be part of test output.
DEFINE_BOOL_LAYOUT_TEST_RUNTIME_FLAG(dump_console_messages)
// Desired return value of WebLocalFrameClient::runModalBeforeUnloadDialog.
DEFINE_BOOL_LAYOUT_TEST_RUNTIME_FLAG(
stay_on_page_after_handling_before_unload)
// Indicates if the test already tracks a top loading frame (in any of the
// renderer processes). This flag is trying to prevent different renderer
// processes from tracking different top loading frames (i.e. main frame in
// one renderer and an OOPIF in another renderer).
DEFINE_BOOL_LAYOUT_TEST_RUNTIME_FLAG(have_top_loading_frame)
// If true, new windows can be opened via javascript or by plugins. By
// default, set to false and can be toggled to true using
// setCanOpenWindows().
DEFINE_BOOL_LAYOUT_TEST_RUNTIME_FLAG(can_open_windows)
// If true, output a descriptive line each time WebViewClient::createView
// is invoked.
DEFINE_BOOL_LAYOUT_TEST_RUNTIME_FLAG(dump_create_view)
// If true, the test runner will output descriptive test for spellcheck
// execution.
DEFINE_BOOL_LAYOUT_TEST_RUNTIME_FLAG(dump_spell_check_callbacks)
// If true, content_shell will output text for alert(), confirm(), prompt(),
// etc.
DEFINE_BOOL_LAYOUT_TEST_RUNTIME_FLAG(dump_javascript_dialogs)
// True if the test called testRunner.setCustomTextOutput.
DEFINE_BOOL_LAYOUT_TEST_RUNTIME_FLAG(has_custom_text_output)
// Contains text passed by the test to testRunner.setCustomTextOutput.
DEFINE_STRING_LAYOUT_TEST_RUNTIME_FLAG(custom_text_output)
// Controls which implementation to use for text dump, to help progressive
// rebaseline of layout test text dumps.
// TODO(xiaochengh): Remove this flag when rebaseline is complete.
DEFINE_BOOL_LAYOUT_TEST_RUNTIME_FLAG(should_use_inner_text_dump)
#undef DEFINE_BOOL_LAYOUT_TEST_RUNTIME_FLAG
#undef DEFINE_STRING_LAYOUT_TEST_RUNTIME_FLAG
private:
TrackedDictionary dict_;
DISALLOW_COPY_AND_ASSIGN(LayoutTestRuntimeFlags);
};
} // namespace test_runner
#endif // CONTENT_SHELL_TEST_RUNNER_LAYOUT_TEST_RUNTIME_FLAGS_H_