diff --git a/src/ui/public/metadata.js b/src/ui/public/metadata.js index 0b3897bb28e16..af93aeb616ed8 100644 --- a/src/ui/public/metadata.js +++ b/src/ui/public/metadata.js @@ -1,11 +1,9 @@ +import $ from 'jquery'; import _ from 'lodash'; -// singleton for immutable copy of window.__KBN__ -if (!_.has(window, '__KBN__')) { - throw new Error('window.__KBN__ must be set for metadata'); -} +const state = $('[kbn-initial-state]').attr('kbn-initial-state'); +const kbn = window.__KBN__ = JSON.parse(state); -const kbn = _.cloneDeep(window.__KBN__ || {}); export default deepFreeze(kbn); function deepFreeze(object) { diff --git a/src/ui/views/chrome.jade b/src/ui/views/chrome.jade index 357258de1b435..6091b440a54a4 100644 --- a/src/ui/views/chrome.jade +++ b/src/ui/views/chrome.jade @@ -1,12 +1,6 @@ - var appName = 'kibana'; - function encoded (data) { - var scriptend = /\<\s*\/\s*script\s*>/ig; - var concatend = ''; - return JSON.stringify(data).replace(scriptend, concatend); - } - block vars doctype html @@ -18,5 +12,5 @@ html(lang='en') title Kibana block head body(kbn-chrome, id='#{appName}-body') - script window.__KBN__ = !{encoded(kibanaPayload)}; + meta(kbn-initial-state=JSON.stringify(kibanaPayload)) block content