Skip to content

Commit

Permalink
fix(engine): expose shadowRoot if the mode is open (#367)
Browse files Browse the repository at this point in the history
  • Loading branch information
caridy authored and diervo committed Jun 2, 2018
1 parent 5cb4084 commit 3de5ec3
Show file tree
Hide file tree
Showing 2 changed files with 3 additions and 10 deletions.
6 changes: 1 addition & 5 deletions packages/lwc-engine/src/framework/html-element.ts
Expand Up @@ -26,11 +26,7 @@ import { lightDomQuerySelector, lightDomQuerySelectorAll } from "./dom/traverse"

function ElementShadowRootGetter(this: HTMLElement): ShadowRoot | null {
const vm = getCustomElementVM(this);
if (process.env.NODE_ENV === 'test') {
return vm.cmpRoot;
}
// for now, shadowRoot is closed except for test mode
return null;
return vm.mode === 'open' ? vm.cmpRoot : null;
}

const fallbackDescriptors = {
Expand Down
7 changes: 2 additions & 5 deletions packages/lwc-engine/src/framework/upgrade.ts
Expand Up @@ -2,7 +2,6 @@ import assert from "./assert";
import { isUndefined, assign, hasOwnProperty, defineProperties, isNull, isObject, isTrue } from "./language";
import { createVM, removeVM, appendVM, renderVM, getCustomElementVM } from "./vm";
import { ComponentConstructor } from "./component";
import { EmptyNodeList } from "./dom/node";
import { ViewModelReflection, resolveCircularModuleDependency } from "./utils";
import { setAttribute } from "./dom/element";
import { shadowRootQuerySelector, shadowRootQuerySelectorAll } from "./dom/traverse";
Expand Down Expand Up @@ -49,19 +48,17 @@ function querySelectorPatchedRoot(this: HTMLElement, selector): Node | null {
if (process.env.NODE_ENV === 'test') {
// TODO: remove this backward compatibility branch.
assert.logError(`Using elm.querySelector() on a root element created via createElement() in a test will return null very soon to enforce ShadowDOM semantics, instead use elm.shadowRoot.querySelector().`);
return shadowRootQuerySelector(vm, selector);
}
return null;
return shadowRootQuerySelector(vm, selector);
}

function querySelectorAllPatchedRoot(this: HTMLElement, selector): HTMLElement[] | NodeList {
const vm = getCustomElementVM(this);
if (process.env.NODE_ENV === 'test') {
// TODO: remove this backward compatibility branch.
assert.logError(`Using elm.querySelectorAll() on a root element created via createElement() in a test will return an empty NodeList very soon to enforce ShadowDOM semantics, instead use elm.shadowRoot.querySelectorAll().`);
return shadowRootQuerySelectorAll(vm, selector);
}
return EmptyNodeList;
return shadowRootQuerySelectorAll(vm, selector);
}

const rootNodeFallbackDescriptors = {
Expand Down

0 comments on commit 3de5ec3

Please sign in to comment.