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

Side by Side Diff: third_party/WebKit/Source/bindings/core/v8/V8Binding.h

Issue 2260113002: Lazily install origin trial features on V8 objects (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Rebase after parent CL landed Created 4 years, 2 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 /* 1 /*
2 * Copyright (C) 2009 Google Inc. All rights reserved. 2 * Copyright (C) 2009 Google Inc. All rights reserved.
3 * Copyright (C) 2012 Ericsson AB. All rights reserved. 3 * Copyright (C) 2012 Ericsson AB. All rights reserved.
4 * 4 *
5 * Redistribution and use in source and binary forms, with or without 5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions are 6 * modification, are permitted provided that the following conditions are
7 * met: 7 * met:
8 * 8 *
9 * * Redistributions of source code must retain the above copyright 9 * * Redistributions of source code must retain the above copyright
10 * notice, this list of conditions and the following disclaimer. 10 * notice, this list of conditions and the following disclaimer.
(...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after
62 class FlexibleArrayBufferView; 62 class FlexibleArrayBufferView;
63 class Frame; 63 class Frame;
64 class LocalDOMWindow; 64 class LocalDOMWindow;
65 class LocalFrame; 65 class LocalFrame;
66 class NodeFilter; 66 class NodeFilter;
67 class TracedValue; 67 class TracedValue;
68 class WorkerGlobalScope; 68 class WorkerGlobalScope;
69 class WorkerOrWorkletGlobalScope; 69 class WorkerOrWorkletGlobalScope;
70 class XPathNSResolver; 70 class XPathNSResolver;
71 71
72 using InstallOriginTrialsFunction = void (*)(ScriptState*);
73
74 template <typename T> 72 template <typename T>
75 struct V8TypeOf { 73 struct V8TypeOf {
76 STATIC_ONLY(V8TypeOf); 74 STATIC_ONLY(V8TypeOf);
77 // |Type| provides C++ -> V8 type conversion for DOM wrappers. 75 // |Type| provides C++ -> V8 type conversion for DOM wrappers.
78 // The Blink binding code generator will generate specialized version of 76 // The Blink binding code generator will generate specialized version of
79 // V8TypeOf for each wrapper class. 77 // V8TypeOf for each wrapper class.
80 typedef void Type; 78 typedef void Type;
81 }; 79 };
82 80
83 template<typename CallbackInfo, typename S> 81 template<typename CallbackInfo, typename S>
(...skipping 839 matching lines...) Expand 10 before | Expand all | Expand 10 after
923 v8::Local<v8::Boolean> doneBoolean; 921 v8::Local<v8::Boolean> doneBoolean;
924 if (!done->ToBoolean(context).ToLocal(&doneBoolean)) 922 if (!done->ToBoolean(context).ToLocal(&doneBoolean))
925 return VectorType(); 923 return VectorType();
926 if (doneBoolean->Value()) 924 if (doneBoolean->Value())
927 break; 925 break;
928 result.append(NativeValueTraits<ValueType>::nativeValue(isolate, element , exceptionState)); 926 result.append(NativeValueTraits<ValueType>::nativeValue(isolate, element , exceptionState));
929 } 927 }
930 return result; 928 return result;
931 } 929 }
932 930
933 // Installs all of the origin-trial-enabled V8 bindings for the given context
934 // and world, based on the trial tokens which have been added to the
935 // ExecutionContext. This should be called after the V8 context has been
936 // installed, but may be called multiple times, as trial tokens are
937 // encountered. It indirectly calls the function set by
938 // |setInstallOriginTrialsFunction|.
939 CORE_EXPORT void installOriginTrials(ScriptState*);
940
941 // Sets the function to be called by |installOriginTrials|. The function is
942 // initially set to the private |installOriginTrialsForCore| function, but
943 // can be overridden by this function. A pointer to the previously set function
944 // is returned, so that functions can be chained.
945 CORE_EXPORT InstallOriginTrialsFunction setInstallOriginTrialsFunction(InstallOr iginTrialsFunction);
946
947 // If the current context causes out of memory, JavaScript setting 931 // If the current context causes out of memory, JavaScript setting
948 // is disabled and it returns true. 932 // is disabled and it returns true.
949 bool handleOutOfMemory(); 933 bool handleOutOfMemory();
950 void crashIfIsolateIsDead(v8::Isolate*); 934 void crashIfIsolateIsDead(v8::Isolate*);
951 935
952 inline bool isUndefinedOrNull(v8::Local<v8::Value> value) 936 inline bool isUndefinedOrNull(v8::Local<v8::Value> value)
953 { 937 {
954 return value.IsEmpty() || value->IsNull() || value->IsUndefined(); 938 return value.IsEmpty() || value->IsNull() || value->IsUndefined();
955 } 939 }
956 v8::Local<v8::Function> getBoundFunction(v8::Local<v8::Function>); 940 v8::Local<v8::Function> getBoundFunction(v8::Local<v8::Function>);
(...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after
1012 typedef void (*InstallTemplateFunction)(v8::Isolate*, const DOMWrapperWorld&, v8 ::Local<v8::FunctionTemplate> interfaceTemplate); 996 typedef void (*InstallTemplateFunction)(v8::Isolate*, const DOMWrapperWorld&, v8 ::Local<v8::FunctionTemplate> interfaceTemplate);
1013 997
1014 // Freeze a V8 object. The type of the first parameter and the return value is 998 // Freeze a V8 object. The type of the first parameter and the return value is
1015 // intentionally v8::Value so that this function can wrap toV8(). 999 // intentionally v8::Value so that this function can wrap toV8().
1016 // If the argument isn't an object, this will crash. 1000 // If the argument isn't an object, this will crash.
1017 CORE_EXPORT v8::Local<v8::Value> freezeV8Object(v8::Local<v8::Value>, v8::Isolat e*); 1001 CORE_EXPORT v8::Local<v8::Value> freezeV8Object(v8::Local<v8::Value>, v8::Isolat e*);
1018 1002
1019 } // namespace blink 1003 } // namespace blink
1020 1004
1021 #endif // V8Binding_h 1005 #endif // V8Binding_h
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698