diff --git a/src/lib/tabs/tab-body.html b/src/lib/tabs/tab-body.html index 73e619466fb..c6e7a4cdd52 100644 --- a/src/lib/tabs/tab-body.html +++ b/src/lib/tabs/tab-body.html @@ -1,5 +1,5 @@
diff --git a/src/lib/tabs/tab-body.spec.ts b/src/lib/tabs/tab-body.spec.ts index a205922ff0f..880b3247088 100644 --- a/src/lib/tabs/tab-body.spec.ts +++ b/src/lib/tabs/tab-body.spec.ts @@ -170,19 +170,6 @@ describe('MdTabBody', () => { })); }); - it('should toggle the canBeAnimated flag', () => { - let fixture: ComponentFixture; - let tabBody: MdTabBody; - - fixture = TestBed.createComponent(SimpleTabBodyApp); - tabBody = fixture.componentInstance.mdTabBody; - - expect(tabBody._canBeAnimated).toBe(false); - - fixture.detectChanges(); - - expect(tabBody._canBeAnimated).toBe(true); - }); }); diff --git a/src/lib/tabs/tab-body.ts b/src/lib/tabs/tab-body.ts index 09cb9084e2b..f3d3682f2cd 100644 --- a/src/lib/tabs/tab-body.ts +++ b/src/lib/tabs/tab-body.ts @@ -7,9 +7,7 @@ import { OnInit, ElementRef, Optional, - ChangeDetectorRef, AfterViewChecked, - AfterContentChecked, } from '@angular/core'; import { trigger, @@ -75,7 +73,7 @@ export type MdTabBodyOriginState = 'left' | 'right'; ]) ] }) -export class MdTabBody implements OnInit, AfterViewChecked, AfterContentChecked { +export class MdTabBody implements OnInit, AfterViewChecked { /** The portal host inside of this container into which the tab body content will be loaded. */ @ViewChild(PortalHostDirective) _portalHost: PortalHostDirective; @@ -102,9 +100,6 @@ export class MdTabBody implements OnInit, AfterViewChecked, AfterContentChecked } } - /** Whether the element is allowed to be animated. */ - _canBeAnimated: boolean = false; - /** The origin position from which this tab should appear when it is centered into view. */ _origin: MdTabBodyOriginState; @@ -120,10 +115,7 @@ export class MdTabBody implements OnInit, AfterViewChecked, AfterContentChecked } } - constructor( - @Optional() private _dir: Dir, - private _elementRef: ElementRef, - private _changeDetectorRef: ChangeDetectorRef) { } + constructor(@Optional() private _dir: Dir, private _elementRef: ElementRef) { } /** * After initialized, check if the content is centered and has an origin. If so, set the @@ -145,27 +137,6 @@ export class MdTabBody implements OnInit, AfterViewChecked, AfterContentChecked } } - /** - * After the content has been checked, determines whether the element should be allowed to - * animate. This has to be limited, because under a specific set of circumstances (see #2151), - * the animations can be triggered too early, which either crashes Chrome by putting it into an - * infinite loop (with Angular < 2.3.0) or throws an error because the element doesn't have a - * computed style (with Angular > 2.3.0). This can alternatively be determined by checking the - * transform: canBeAnimated = getComputedStyle(element) !== '', however document.contains should - * be faster since it doesn't cause a reflow. - */ - ngAfterContentChecked() { - // TODO: This can safely be removed after we stop supporting Angular < 2.4.2. The fix landed via - // https://github.com/angular/angular/commit/21030e9a1cf30e8101399d8535ed72d847a23ba6 - if (!this._canBeAnimated) { - this._canBeAnimated = document.body.contains(this._elementRef.nativeElement); - - if (this._canBeAnimated) { - this._changeDetectorRef.markForCheck(); - } - } - } - _onTranslateTabStarted(e: AnimationEvent) { if (this._isCenterPosition(e.toState)) { this.onCentering.emit(this._elementRef.nativeElement.clientHeight);