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

Side by Side Diff: content/renderer/pepper/pepper_plugin_instance_impl.cc

Issue 791923003: replace COMPILE_ASSERT with static_assert in content/ (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: minor adjustment Created 5 years, 12 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) 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 "content/renderer/pepper/pepper_plugin_instance_impl.h" 5 #include "content/renderer/pepper/pepper_plugin_instance_impl.h"
6 6
7 #include "base/bind.h" 7 #include "base/bind.h"
8 #include "base/callback_helpers.h" 8 #include "base/callback_helpers.h"
9 #include "base/debug/trace_event.h" 9 #include "base/debug/trace_event.h"
10 #include "base/logging.h" 10 #include "base/logging.h"
(...skipping 164 matching lines...) Expand 10 before | Expand all | Expand 10 after
175 using blink::WebURLRequest; 175 using blink::WebURLRequest;
176 using blink::WebURLResponse; 176 using blink::WebURLResponse;
177 using blink::WebUserGestureIndicator; 177 using blink::WebUserGestureIndicator;
178 using blink::WebUserGestureToken; 178 using blink::WebUserGestureToken;
179 using blink::WebView; 179 using blink::WebView;
180 180
181 namespace content { 181 namespace content {
182 182
183 namespace { 183 namespace {
184 184
185 #define STATIC_ASSERT_PP_MATCHING_ENUM(a, b) \
186 static_assert(static_cast<int>(a) == static_cast<int>(b), \
187 "mismatching enums: " #a)
188
185 // Check PP_TextInput_Type and ui::TextInputType are kept in sync. 189 // Check PP_TextInput_Type and ui::TextInputType are kept in sync.
186 COMPILE_ASSERT(int(ui::TEXT_INPUT_TYPE_NONE) == int(PP_TEXTINPUT_TYPE_NONE), 190 STATIC_ASSERT_PP_MATCHING_ENUM(ui::TEXT_INPUT_TYPE_NONE,
187 mismatching_enums); 191 PP_TEXTINPUT_TYPE_NONE);
188 COMPILE_ASSERT(int(ui::TEXT_INPUT_TYPE_TEXT) == int(PP_TEXTINPUT_TYPE_TEXT), 192 STATIC_ASSERT_PP_MATCHING_ENUM(ui::TEXT_INPUT_TYPE_TEXT,
189 mismatching_enums); 193 PP_TEXTINPUT_TYPE_TEXT);
190 COMPILE_ASSERT(int(ui::TEXT_INPUT_TYPE_PASSWORD) == 194 STATIC_ASSERT_PP_MATCHING_ENUM(ui::TEXT_INPUT_TYPE_PASSWORD,
191 int(PP_TEXTINPUT_TYPE_PASSWORD), 195 PP_TEXTINPUT_TYPE_PASSWORD);
192 mismatching_enums); 196 STATIC_ASSERT_PP_MATCHING_ENUM(ui::TEXT_INPUT_TYPE_SEARCH,
193 COMPILE_ASSERT(int(ui::TEXT_INPUT_TYPE_SEARCH) == int(PP_TEXTINPUT_TYPE_SEARCH), 197 PP_TEXTINPUT_TYPE_SEARCH);
194 mismatching_enums); 198 STATIC_ASSERT_PP_MATCHING_ENUM(ui::TEXT_INPUT_TYPE_EMAIL,
195 COMPILE_ASSERT(int(ui::TEXT_INPUT_TYPE_EMAIL) == int(PP_TEXTINPUT_TYPE_EMAIL), 199 PP_TEXTINPUT_TYPE_EMAIL);
196 mismatching_enums); 200 STATIC_ASSERT_PP_MATCHING_ENUM(ui::TEXT_INPUT_TYPE_NUMBER,
197 COMPILE_ASSERT(int(ui::TEXT_INPUT_TYPE_NUMBER) == int(PP_TEXTINPUT_TYPE_NUMBER), 201 PP_TEXTINPUT_TYPE_NUMBER);
198 mismatching_enums); 202 STATIC_ASSERT_PP_MATCHING_ENUM(ui::TEXT_INPUT_TYPE_TELEPHONE,
199 COMPILE_ASSERT(int(ui::TEXT_INPUT_TYPE_TELEPHONE) == 203 PP_TEXTINPUT_TYPE_TELEPHONE);
200 int(PP_TEXTINPUT_TYPE_TELEPHONE), 204 STATIC_ASSERT_PP_MATCHING_ENUM(ui::TEXT_INPUT_TYPE_URL,
201 mismatching_enums); 205 PP_TEXTINPUT_TYPE_URL);
202 COMPILE_ASSERT(int(ui::TEXT_INPUT_TYPE_URL) == int(PP_TEXTINPUT_TYPE_URL),
203 mismatching_enums);
204 206
205 // The default text input type is to regard the plugin always accept text input. 207 // The default text input type is to regard the plugin always accept text input.
206 // This is for allowing users to use input methods even on completely-IME- 208 // This is for allowing users to use input methods even on completely-IME-
207 // unaware plugins (e.g., PPAPI Flash or PDF plugin for M16). 209 // unaware plugins (e.g., PPAPI Flash or PDF plugin for M16).
208 // Plugins need to explicitly opt out the text input mode if they know 210 // Plugins need to explicitly opt out the text input mode if they know
209 // that they don't accept texts. 211 // that they don't accept texts.
210 const ui::TextInputType kPluginDefaultTextInputType = ui::TEXT_INPUT_TYPE_TEXT; 212 const ui::TextInputType kPluginDefaultTextInputType = ui::TEXT_INPUT_TYPE_TEXT;
211 213
212 #define COMPILE_ASSERT_MATCHING_ENUM(webkit_name, np_name) \
213 COMPILE_ASSERT(static_cast<int>(WebCursorInfo::webkit_name) == \
214 static_cast<int>(np_name), \
215 mismatching_enums)
216
217 #define COMPILE_ASSERT_PRINT_SCALING_MATCHING_ENUM(webkit_name, pp_name) \
218 COMPILE_ASSERT(static_cast<int>(webkit_name) == static_cast<int>(pp_name), \
219 mismatching_enums)
220
221 // <embed>/<object> attributes. 214 // <embed>/<object> attributes.
222 const char kWidth[] = "width"; 215 const char kWidth[] = "width";
223 const char kHeight[] = "height"; 216 const char kHeight[] = "height";
224 const char kBorder[] = "border"; // According to w3c, deprecated. 217 const char kBorder[] = "border"; // According to w3c, deprecated.
225 const char kStyle[] = "style"; 218 const char kStyle[] = "style";
226 219
227 COMPILE_ASSERT_MATCHING_ENUM(TypePointer, PP_MOUSECURSOR_TYPE_POINTER); 220 #define STATIC_ASSERT_MATCHING_ENUM(webkit_name, np_name) \
228 COMPILE_ASSERT_MATCHING_ENUM(TypeCross, PP_MOUSECURSOR_TYPE_CROSS); 221 static_assert(static_cast<int>(WebCursorInfo::webkit_name) == \
229 COMPILE_ASSERT_MATCHING_ENUM(TypeHand, PP_MOUSECURSOR_TYPE_HAND); 222 static_cast<int>(np_name), \
cpu_(ooo_6.6-7.5) 2015/01/13 02:07:55 wrong indentation?
Mostyn Bramley-Moore 2015/01/13 08:53:41 Done.
230 COMPILE_ASSERT_MATCHING_ENUM(TypeIBeam, PP_MOUSECURSOR_TYPE_IBEAM); 223 "mismatching enums: " #webkit_name)
231 COMPILE_ASSERT_MATCHING_ENUM(TypeWait, PP_MOUSECURSOR_TYPE_WAIT); 224
232 COMPILE_ASSERT_MATCHING_ENUM(TypeHelp, PP_MOUSECURSOR_TYPE_HELP); 225 STATIC_ASSERT_MATCHING_ENUM(TypePointer, PP_MOUSECURSOR_TYPE_POINTER);
233 COMPILE_ASSERT_MATCHING_ENUM(TypeEastResize, PP_MOUSECURSOR_TYPE_EASTRESIZE); 226 STATIC_ASSERT_MATCHING_ENUM(TypeCross, PP_MOUSECURSOR_TYPE_CROSS);
234 COMPILE_ASSERT_MATCHING_ENUM(TypeNorthResize, PP_MOUSECURSOR_TYPE_NORTHRESIZE); 227 STATIC_ASSERT_MATCHING_ENUM(TypeHand, PP_MOUSECURSOR_TYPE_HAND);
235 COMPILE_ASSERT_MATCHING_ENUM(TypeNorthEastResize, 228 STATIC_ASSERT_MATCHING_ENUM(TypeIBeam, PP_MOUSECURSOR_TYPE_IBEAM);
236 PP_MOUSECURSOR_TYPE_NORTHEASTRESIZE); 229 STATIC_ASSERT_MATCHING_ENUM(TypeWait, PP_MOUSECURSOR_TYPE_WAIT);
237 COMPILE_ASSERT_MATCHING_ENUM(TypeNorthWestResize, 230 STATIC_ASSERT_MATCHING_ENUM(TypeHelp, PP_MOUSECURSOR_TYPE_HELP);
238 PP_MOUSECURSOR_TYPE_NORTHWESTRESIZE); 231 STATIC_ASSERT_MATCHING_ENUM(TypeEastResize, PP_MOUSECURSOR_TYPE_EASTRESIZE);
239 COMPILE_ASSERT_MATCHING_ENUM(TypeSouthResize, PP_MOUSECURSOR_TYPE_SOUTHRESIZE); 232 STATIC_ASSERT_MATCHING_ENUM(TypeNorthResize, PP_MOUSECURSOR_TYPE_NORTHRESIZE);
240 COMPILE_ASSERT_MATCHING_ENUM(TypeSouthEastResize, 233 STATIC_ASSERT_MATCHING_ENUM(TypeNorthEastResize,
241 PP_MOUSECURSOR_TYPE_SOUTHEASTRESIZE); 234 PP_MOUSECURSOR_TYPE_NORTHEASTRESIZE);
242 COMPILE_ASSERT_MATCHING_ENUM(TypeSouthWestResize, 235 STATIC_ASSERT_MATCHING_ENUM(TypeNorthWestResize,
243 PP_MOUSECURSOR_TYPE_SOUTHWESTRESIZE); 236 PP_MOUSECURSOR_TYPE_NORTHWESTRESIZE);
244 COMPILE_ASSERT_MATCHING_ENUM(TypeWestResize, PP_MOUSECURSOR_TYPE_WESTRESIZE); 237 STATIC_ASSERT_MATCHING_ENUM(TypeSouthResize, PP_MOUSECURSOR_TYPE_SOUTHRESIZE);
245 COMPILE_ASSERT_MATCHING_ENUM(TypeNorthSouthResize, 238 STATIC_ASSERT_MATCHING_ENUM(TypeSouthEastResize,
246 PP_MOUSECURSOR_TYPE_NORTHSOUTHRESIZE); 239 PP_MOUSECURSOR_TYPE_SOUTHEASTRESIZE);
247 COMPILE_ASSERT_MATCHING_ENUM(TypeEastWestResize, 240 STATIC_ASSERT_MATCHING_ENUM(TypeSouthWestResize,
248 PP_MOUSECURSOR_TYPE_EASTWESTRESIZE); 241 PP_MOUSECURSOR_TYPE_SOUTHWESTRESIZE);
249 COMPILE_ASSERT_MATCHING_ENUM(TypeNorthEastSouthWestResize, 242 STATIC_ASSERT_MATCHING_ENUM(TypeWestResize, PP_MOUSECURSOR_TYPE_WESTRESIZE);
250 PP_MOUSECURSOR_TYPE_NORTHEASTSOUTHWESTRESIZE); 243 STATIC_ASSERT_MATCHING_ENUM(TypeNorthSouthResize,
251 COMPILE_ASSERT_MATCHING_ENUM(TypeNorthWestSouthEastResize, 244 PP_MOUSECURSOR_TYPE_NORTHSOUTHRESIZE);
252 PP_MOUSECURSOR_TYPE_NORTHWESTSOUTHEASTRESIZE); 245 STATIC_ASSERT_MATCHING_ENUM(TypeEastWestResize,
253 COMPILE_ASSERT_MATCHING_ENUM(TypeColumnResize, 246 PP_MOUSECURSOR_TYPE_EASTWESTRESIZE);
254 PP_MOUSECURSOR_TYPE_COLUMNRESIZE); 247 STATIC_ASSERT_MATCHING_ENUM(TypeNorthEastSouthWestResize,
255 COMPILE_ASSERT_MATCHING_ENUM(TypeRowResize, PP_MOUSECURSOR_TYPE_ROWRESIZE); 248 PP_MOUSECURSOR_TYPE_NORTHEASTSOUTHWESTRESIZE);
256 COMPILE_ASSERT_MATCHING_ENUM(TypeMiddlePanning, 249 STATIC_ASSERT_MATCHING_ENUM(TypeNorthWestSouthEastResize,
257 PP_MOUSECURSOR_TYPE_MIDDLEPANNING); 250 PP_MOUSECURSOR_TYPE_NORTHWESTSOUTHEASTRESIZE);
258 COMPILE_ASSERT_MATCHING_ENUM(TypeEastPanning, PP_MOUSECURSOR_TYPE_EASTPANNING); 251 STATIC_ASSERT_MATCHING_ENUM(TypeColumnResize,
259 COMPILE_ASSERT_MATCHING_ENUM(TypeNorthPanning, 252 PP_MOUSECURSOR_TYPE_COLUMNRESIZE);
260 PP_MOUSECURSOR_TYPE_NORTHPANNING); 253 STATIC_ASSERT_MATCHING_ENUM(TypeRowResize, PP_MOUSECURSOR_TYPE_ROWRESIZE);
261 COMPILE_ASSERT_MATCHING_ENUM(TypeNorthEastPanning, 254 STATIC_ASSERT_MATCHING_ENUM(TypeMiddlePanning,
262 PP_MOUSECURSOR_TYPE_NORTHEASTPANNING); 255 PP_MOUSECURSOR_TYPE_MIDDLEPANNING);
263 COMPILE_ASSERT_MATCHING_ENUM(TypeNorthWestPanning, 256 STATIC_ASSERT_MATCHING_ENUM(TypeEastPanning, PP_MOUSECURSOR_TYPE_EASTPANNING);
264 PP_MOUSECURSOR_TYPE_NORTHWESTPANNING); 257 STATIC_ASSERT_MATCHING_ENUM(TypeNorthPanning,
265 COMPILE_ASSERT_MATCHING_ENUM(TypeSouthPanning, 258 PP_MOUSECURSOR_TYPE_NORTHPANNING);
266 PP_MOUSECURSOR_TYPE_SOUTHPANNING); 259 STATIC_ASSERT_MATCHING_ENUM(TypeNorthEastPanning,
267 COMPILE_ASSERT_MATCHING_ENUM(TypeSouthEastPanning, 260 PP_MOUSECURSOR_TYPE_NORTHEASTPANNING);
268 PP_MOUSECURSOR_TYPE_SOUTHEASTPANNING); 261 STATIC_ASSERT_MATCHING_ENUM(TypeNorthWestPanning,
269 COMPILE_ASSERT_MATCHING_ENUM(TypeSouthWestPanning, 262 PP_MOUSECURSOR_TYPE_NORTHWESTPANNING);
270 PP_MOUSECURSOR_TYPE_SOUTHWESTPANNING); 263 STATIC_ASSERT_MATCHING_ENUM(TypeSouthPanning,
271 COMPILE_ASSERT_MATCHING_ENUM(TypeWestPanning, PP_MOUSECURSOR_TYPE_WESTPANNING); 264 PP_MOUSECURSOR_TYPE_SOUTHPANNING);
272 COMPILE_ASSERT_MATCHING_ENUM(TypeMove, PP_MOUSECURSOR_TYPE_MOVE); 265 STATIC_ASSERT_MATCHING_ENUM(TypeSouthEastPanning,
273 COMPILE_ASSERT_MATCHING_ENUM(TypeVerticalText, 266 PP_MOUSECURSOR_TYPE_SOUTHEASTPANNING);
274 PP_MOUSECURSOR_TYPE_VERTICALTEXT); 267 STATIC_ASSERT_MATCHING_ENUM(TypeSouthWestPanning,
275 COMPILE_ASSERT_MATCHING_ENUM(TypeCell, PP_MOUSECURSOR_TYPE_CELL); 268 PP_MOUSECURSOR_TYPE_SOUTHWESTPANNING);
276 COMPILE_ASSERT_MATCHING_ENUM(TypeContextMenu, PP_MOUSECURSOR_TYPE_CONTEXTMENU); 269 STATIC_ASSERT_MATCHING_ENUM(TypeWestPanning, PP_MOUSECURSOR_TYPE_WESTPANNING);
277 COMPILE_ASSERT_MATCHING_ENUM(TypeAlias, PP_MOUSECURSOR_TYPE_ALIAS); 270 STATIC_ASSERT_MATCHING_ENUM(TypeMove, PP_MOUSECURSOR_TYPE_MOVE);
278 COMPILE_ASSERT_MATCHING_ENUM(TypeProgress, PP_MOUSECURSOR_TYPE_PROGRESS); 271 STATIC_ASSERT_MATCHING_ENUM(TypeVerticalText,
279 COMPILE_ASSERT_MATCHING_ENUM(TypeNoDrop, PP_MOUSECURSOR_TYPE_NODROP); 272 PP_MOUSECURSOR_TYPE_VERTICALTEXT);
280 COMPILE_ASSERT_MATCHING_ENUM(TypeCopy, PP_MOUSECURSOR_TYPE_COPY); 273 STATIC_ASSERT_MATCHING_ENUM(TypeCell, PP_MOUSECURSOR_TYPE_CELL);
281 COMPILE_ASSERT_MATCHING_ENUM(TypeNone, PP_MOUSECURSOR_TYPE_NONE); 274 STATIC_ASSERT_MATCHING_ENUM(TypeContextMenu, PP_MOUSECURSOR_TYPE_CONTEXTMENU);
282 COMPILE_ASSERT_MATCHING_ENUM(TypeNotAllowed, PP_MOUSECURSOR_TYPE_NOTALLOWED); 275 STATIC_ASSERT_MATCHING_ENUM(TypeAlias, PP_MOUSECURSOR_TYPE_ALIAS);
283 COMPILE_ASSERT_MATCHING_ENUM(TypeZoomIn, PP_MOUSECURSOR_TYPE_ZOOMIN); 276 STATIC_ASSERT_MATCHING_ENUM(TypeProgress, PP_MOUSECURSOR_TYPE_PROGRESS);
284 COMPILE_ASSERT_MATCHING_ENUM(TypeZoomOut, PP_MOUSECURSOR_TYPE_ZOOMOUT); 277 STATIC_ASSERT_MATCHING_ENUM(TypeNoDrop, PP_MOUSECURSOR_TYPE_NODROP);
285 COMPILE_ASSERT_MATCHING_ENUM(TypeGrab, PP_MOUSECURSOR_TYPE_GRAB); 278 STATIC_ASSERT_MATCHING_ENUM(TypeCopy, PP_MOUSECURSOR_TYPE_COPY);
286 COMPILE_ASSERT_MATCHING_ENUM(TypeGrabbing, PP_MOUSECURSOR_TYPE_GRABBING); 279 STATIC_ASSERT_MATCHING_ENUM(TypeNone, PP_MOUSECURSOR_TYPE_NONE);
280 STATIC_ASSERT_MATCHING_ENUM(TypeNotAllowed, PP_MOUSECURSOR_TYPE_NOTALLOWED);
281 STATIC_ASSERT_MATCHING_ENUM(TypeZoomIn, PP_MOUSECURSOR_TYPE_ZOOMIN);
282 STATIC_ASSERT_MATCHING_ENUM(TypeZoomOut, PP_MOUSECURSOR_TYPE_ZOOMOUT);
283 STATIC_ASSERT_MATCHING_ENUM(TypeGrab, PP_MOUSECURSOR_TYPE_GRAB);
284 STATIC_ASSERT_MATCHING_ENUM(TypeGrabbing, PP_MOUSECURSOR_TYPE_GRABBING);
287 // Do not assert WebCursorInfo::TypeCustom == PP_CURSORTYPE_CUSTOM; 285 // Do not assert WebCursorInfo::TypeCustom == PP_CURSORTYPE_CUSTOM;
288 // PP_CURSORTYPE_CUSTOM is pinned to allow new cursor types. 286 // PP_CURSORTYPE_CUSTOM is pinned to allow new cursor types.
289 287
290 COMPILE_ASSERT_PRINT_SCALING_MATCHING_ENUM(blink::WebPrintScalingOptionNone, 288 STATIC_ASSERT_PP_MATCHING_ENUM(blink::WebPrintScalingOptionNone,
291 PP_PRINTSCALINGOPTION_NONE); 289 PP_PRINTSCALINGOPTION_NONE);
292 COMPILE_ASSERT_PRINT_SCALING_MATCHING_ENUM( 290 STATIC_ASSERT_PP_MATCHING_ENUM(
293 blink::WebPrintScalingOptionFitToPrintableArea, 291 blink::WebPrintScalingOptionFitToPrintableArea,
294 PP_PRINTSCALINGOPTION_FIT_TO_PRINTABLE_AREA); 292 PP_PRINTSCALINGOPTION_FIT_TO_PRINTABLE_AREA);
295 COMPILE_ASSERT_PRINT_SCALING_MATCHING_ENUM( 293 STATIC_ASSERT_PP_MATCHING_ENUM(
296 blink::WebPrintScalingOptionSourceSize, 294 blink::WebPrintScalingOptionSourceSize,
297 PP_PRINTSCALINGOPTION_SOURCE_SIZE); 295 PP_PRINTSCALINGOPTION_SOURCE_SIZE);
298 296
299 // Sets |*security_origin| to be the WebKit security origin associated with the 297 // Sets |*security_origin| to be the WebKit security origin associated with the
300 // document containing the given plugin instance. On success, returns true. If 298 // document containing the given plugin instance. On success, returns true. If
301 // the instance is invalid, returns false and |*security_origin| will be 299 // the instance is invalid, returns false and |*security_origin| will be
302 // unchanged. 300 // unchanged.
303 bool SecurityOriginForInstance(PP_Instance instance_id, 301 bool SecurityOriginForInstance(PP_Instance instance_id,
304 blink::WebSecurityOrigin* security_origin) { 302 blink::WebSecurityOrigin* security_origin) {
305 PepperPluginInstanceImpl* instance = 303 PepperPluginInstanceImpl* instance =
(...skipping 2984 matching lines...) Expand 10 before | Expand all | Expand 10 after
3290 // Running out-of-process. Initiate an IPC call to notify the plugin 3288 // Running out-of-process. Initiate an IPC call to notify the plugin
3291 // process. 3289 // process.
3292 ppapi::proxy::HostDispatcher* dispatcher = 3290 ppapi::proxy::HostDispatcher* dispatcher =
3293 ppapi::proxy::HostDispatcher::GetForInstance(pp_instance()); 3291 ppapi::proxy::HostDispatcher::GetForInstance(pp_instance());
3294 dispatcher->Send(new PpapiMsg_PPPInstance_HandleDocumentLoad( 3292 dispatcher->Send(new PpapiMsg_PPPInstance_HandleDocumentLoad(
3295 ppapi::API_ID_PPP_INSTANCE, pp_instance(), pending_host_id, data)); 3293 ppapi::API_ID_PPP_INSTANCE, pp_instance(), pending_host_id, data));
3296 } 3294 }
3297 } 3295 }
3298 3296
3299 } // namespace content 3297 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698