| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright (C) 2013 Google Inc. All rights reserved. | 2 * Copyright (C) 2013 Google Inc. All rights reserved. |
| 3 * | 3 * |
| 4 * Redistribution and use in source and binary forms, with or without | 4 * Redistribution and use in source and binary forms, with or without |
| 5 * modification, are permitted provided that the following conditions are | 5 * modification, are permitted provided that the following conditions are |
| 6 * met: | 6 * met: |
| 7 * | 7 * |
| 8 * * Redistributions of source code must retain the above copyright | 8 * * Redistributions of source code must retain the above copyright |
| 9 * notice, this list of conditions and the following disclaimer. | 9 * notice, this list of conditions and the following disclaimer. |
| 10 * * Redistributions in binary form must reproduce the above | 10 * * Redistributions in binary form must reproduce the above |
| (...skipping 30 matching lines...) Expand all Loading... |
| 41 #include "wtf/PassOwnPtr.h" | 41 #include "wtf/PassOwnPtr.h" |
| 42 | 42 |
| 43 namespace blink { | 43 namespace blink { |
| 44 | 44 |
| 45 #define CALLBACK_LIST(V) \ | 45 #define CALLBACK_LIST(V) \ |
| 46 V(created, CreatedCallback) \ | 46 V(created, CreatedCallback) \ |
| 47 V(attached, AttachedCallback) \ | 47 V(attached, AttachedCallback) \ |
| 48 V(detached, DetachedCallback) \ | 48 V(detached, DetachedCallback) \ |
| 49 V(attributeChanged, AttributeChangedCallback) | 49 V(attributeChanged, AttributeChangedCallback) |
| 50 | 50 |
| 51 PassRefPtrWillBeRawPtr<V8CustomElementLifecycleCallbacks> V8CustomElementLifecyc
leCallbacks::create(ScriptState* scriptState, v8::Local<v8::Object> prototype, v
8::MaybeLocal<v8::Function> created, v8::MaybeLocal<v8::Function> attached, v8::
MaybeLocal<v8::Function> detached, v8::MaybeLocal<v8::Function> attributeChanged
) | 51 RawPtr<V8CustomElementLifecycleCallbacks> V8CustomElementLifecycleCallbacks::cre
ate(ScriptState* scriptState, v8::Local<v8::Object> prototype, v8::MaybeLocal<v8
::Function> created, v8::MaybeLocal<v8::Function> attached, v8::MaybeLocal<v8::F
unction> detached, v8::MaybeLocal<v8::Function> attributeChanged) |
| 52 { | 52 { |
| 53 v8::Isolate* isolate = scriptState->isolate(); | 53 v8::Isolate* isolate = scriptState->isolate(); |
| 54 // A given object can only be used as a Custom Element prototype | 54 // A given object can only be used as a Custom Element prototype |
| 55 // once; see customElementIsInterfacePrototypeObject | 55 // once; see customElementIsInterfacePrototypeObject |
| 56 #define SET_HIDDEN_VALUE(Value, Name) \ | 56 #define SET_HIDDEN_VALUE(Value, Name) \ |
| 57 ASSERT(V8HiddenValue::getHiddenValue(scriptState, prototype, V8HiddenValue::
customElement##Name(isolate)).IsEmpty()); \ | 57 ASSERT(V8HiddenValue::getHiddenValue(scriptState, prototype, V8HiddenValue::
customElement##Name(isolate)).IsEmpty()); \ |
| 58 if (!Value.IsEmpty()) \ | 58 if (!Value.IsEmpty()) \ |
| 59 V8HiddenValue::setHiddenValue(scriptState, prototype, V8HiddenValue::cus
tomElement##Name(isolate), Value.ToLocalChecked()); | 59 V8HiddenValue::setHiddenValue(scriptState, prototype, V8HiddenValue::cus
tomElement##Name(isolate), Value.ToLocalChecked()); |
| 60 | 60 |
| 61 CALLBACK_LIST(SET_HIDDEN_VALUE) | 61 CALLBACK_LIST(SET_HIDDEN_VALUE) |
| 62 #undef SET_HIDDEN_VALUE | 62 #undef SET_HIDDEN_VALUE |
| 63 | 63 |
| 64 return adoptRefWillBeNoop(new V8CustomElementLifecycleCallbacks(scriptState,
prototype, created, attached, detached, attributeChanged)); | 64 return new V8CustomElementLifecycleCallbacks(scriptState, prototype, created
, attached, detached, attributeChanged); |
| 65 } | 65 } |
| 66 | 66 |
| 67 static CustomElementLifecycleCallbacks::CallbackType flagSet(v8::MaybeLocal<v8::
Function> attached, v8::MaybeLocal<v8::Function> detached, v8::MaybeLocal<v8::Fu
nction> attributeChanged) | 67 static CustomElementLifecycleCallbacks::CallbackType flagSet(v8::MaybeLocal<v8::
Function> attached, v8::MaybeLocal<v8::Function> detached, v8::MaybeLocal<v8::Fu
nction> attributeChanged) |
| 68 { | 68 { |
| 69 // V8 Custom Elements always run created to swizzle prototypes. | 69 // V8 Custom Elements always run created to swizzle prototypes. |
| 70 int flags = CustomElementLifecycleCallbacks::CreatedCallback; | 70 int flags = CustomElementLifecycleCallbacks::CreatedCallback; |
| 71 | 71 |
| 72 if (!attached.IsEmpty()) | 72 if (!attached.IsEmpty()) |
| 73 flags |= CustomElementLifecycleCallbacks::AttachedCallback; | 73 flags |= CustomElementLifecycleCallbacks::AttachedCallback; |
| 74 | 74 |
| (...skipping 166 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 241 ScriptController::callFunction(getExecutionContext(), callback, receiver, 0,
0, isolate); | 241 ScriptController::callFunction(getExecutionContext(), callback, receiver, 0,
0, isolate); |
| 242 } | 242 } |
| 243 | 243 |
| 244 DEFINE_TRACE(V8CustomElementLifecycleCallbacks) | 244 DEFINE_TRACE(V8CustomElementLifecycleCallbacks) |
| 245 { | 245 { |
| 246 CustomElementLifecycleCallbacks::trace(visitor); | 246 CustomElementLifecycleCallbacks::trace(visitor); |
| 247 ContextLifecycleObserver::trace(visitor); | 247 ContextLifecycleObserver::trace(visitor); |
| 248 } | 248 } |
| 249 | 249 |
| 250 } // namespace blink | 250 } // namespace blink |
| OLD | NEW |