Pin Chrome's shortcut to the Win10 Start menu on install and OS upgrade.
[chromium-blink-merge.git] / third_party / polymer / v1_0 / components / more-routing / more-route-context-aware.html
blob0da57c27dc537cf1906b66cd70c62cc85f9aeb09
1 <!--
2 Copyright (c) 2015 The Polymer Project Authors. All rights reserved.
3 This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt
4 The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt
5 The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt
6 Code distributed by Google as part of the polymer project is also
7 subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt
8 -->
9 <link rel="import" href="../polymer/polymer.html">
11 <link rel="import" href="route.html">
12 <link rel="import" href="routing.html">
14 <script>
16 MoreRouting.ContextAware = {
18 /** @override */
19 ready: function() {
20 this._makeRoutingReady();
23 /**
24 * Calls `routingReady`, and ensures that it is called in a top-down manner.
26 * We need to be sure that parent nodes have `routingReady` triggered before
27 * their children so that they can properly configure nested routes.
29 * Unfortunately, `ready` is sometimes bottom-up, sometimes top-down.
30 * Ideally, this wouldn't be necessary.
32 * @see https://github.com/Polymer/polymer/pull/1448
34 _makeRoutingReady: function() {
35 if (this.routingIsReady) return;
37 var node = this;
38 while (node = Polymer.dom(node).parentNode) {
39 if (typeof node._makeRoutingReady === 'function') break;
41 if (node) node._makeRoutingReady();
43 this.parentRoute = this._findParentRoute();
44 this.routingIsReady = true;
45 if (typeof this.routingReady === 'function') this.routingReady();
48 _findParentRoute: function() {
49 var node = this;
50 while (node) {
51 node = Polymer.dom(node).parentNode;
52 if (node && node.nodeType !== Node.ELEMENT_NODE) {
53 node = node.host;
56 var route = node && node.moreRouteContext;
57 if (route instanceof MoreRouting.Route) {
58 return route;
61 return null;
66 </script>