OLD | NEW |
1 /* | 1 /* |
2 * Copyright (C) 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013 Apple Inc. All R
ights Reserved. | 2 * Copyright (C) 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013 Apple Inc. All R
ights Reserved. |
3 * Copyright (C) 2008 Torch Mobile Inc. All rights reserved. (http://www.torchmo
bile.com/) | 3 * Copyright (C) 2008 Torch Mobile Inc. All rights reserved. (http://www.torchmo
bile.com/) |
4 * | 4 * |
5 * This library is free software; you can redistribute it and/or | 5 * This library is free software; you can redistribute it and/or |
6 * modify it under the terms of the GNU Library General Public | 6 * modify it under the terms of the GNU Library General Public |
7 * License as published by the Free Software Foundation; either | 7 * License as published by the Free Software Foundation; either |
8 * version 2 of the License, or (at your option) any later version. | 8 * version 2 of the License, or (at your option) any later version. |
9 * This library is distributed in the hope that it will be useful, | 9 * This library is distributed in the hope that it will be useful, |
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of | 10 * but WITHOUT ANY WARRANTY; without even the implied warranty of |
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
43 #include "core/layout/Layer.h" | 43 #include "core/layout/Layer.h" |
44 #include "core/loader/FrameLoader.h" | 44 #include "core/loader/FrameLoader.h" |
45 #include "core/loader/HistoryItem.h" | 45 #include "core/loader/HistoryItem.h" |
46 #include "core/page/AutoscrollController.h" | 46 #include "core/page/AutoscrollController.h" |
47 #include "core/page/Chrome.h" | 47 #include "core/page/Chrome.h" |
48 #include "core/page/ChromeClient.h" | 48 #include "core/page/ChromeClient.h" |
49 #include "core/page/ContextMenuController.h" | 49 #include "core/page/ContextMenuController.h" |
50 #include "core/page/DragController.h" | 50 #include "core/page/DragController.h" |
51 #include "core/page/FocusController.h" | 51 #include "core/page/FocusController.h" |
52 #include "core/page/FrameTree.h" | 52 #include "core/page/FrameTree.h" |
| 53 #include "core/page/PageLifecycleNotifier.h" |
53 #include "core/page/PointerLockController.h" | 54 #include "core/page/PointerLockController.h" |
54 #include "core/page/ValidationMessageClient.h" | 55 #include "core/page/ValidationMessageClient.h" |
55 #include "core/page/scrolling/ScrollingCoordinator.h" | 56 #include "core/page/scrolling/ScrollingCoordinator.h" |
56 #include "core/rendering/RenderView.h" | 57 #include "core/rendering/RenderView.h" |
57 #include "core/rendering/TextAutosizer.h" | 58 #include "core/rendering/TextAutosizer.h" |
58 #include "platform/graphics/GraphicsLayer.h" | 59 #include "platform/graphics/GraphicsLayer.h" |
59 #include "platform/plugins/PluginData.h" | 60 #include "platform/plugins/PluginData.h" |
60 #include "wtf/HashMap.h" | 61 #include "wtf/HashMap.h" |
61 #include "wtf/RefCountedLeakCounter.h" | 62 #include "wtf/RefCountedLeakCounter.h" |
62 #include "wtf/StdLibExtras.h" | 63 #include "wtf/StdLibExtras.h" |
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
105 { | 106 { |
106 if (!frame) | 107 if (!frame) |
107 return 1; | 108 return 1; |
108 Page* page = frame->page(); | 109 Page* page = frame->page(); |
109 if (!page) | 110 if (!page) |
110 return 1; | 111 return 1; |
111 return page->deviceScaleFactor(); | 112 return page->deviceScaleFactor(); |
112 } | 113 } |
113 | 114 |
114 Page::Page(PageClients& pageClients) | 115 Page::Page(PageClients& pageClients) |
115 : PageLifecycleNotifier(this) | 116 : SettingsDelegate(Settings::create()) |
116 , SettingsDelegate(Settings::create()) | |
117 , m_animator(PageAnimator::create(*this)) | 117 , m_animator(PageAnimator::create(*this)) |
118 , m_autoscrollController(AutoscrollController::create(*this)) | 118 , m_autoscrollController(AutoscrollController::create(*this)) |
119 , m_chrome(Chrome::create(this, pageClients.chromeClient)) | 119 , m_chrome(Chrome::create(this, pageClients.chromeClient)) |
120 , m_dragCaretController(DragCaretController::create()) | 120 , m_dragCaretController(DragCaretController::create()) |
121 , m_dragController(DragController::create(this, pageClients.dragClient)) | 121 , m_dragController(DragController::create(this, pageClients.dragClient)) |
122 , m_focusController(FocusController::create(this)) | 122 , m_focusController(FocusController::create(this)) |
123 , m_contextMenuController(ContextMenuController::create(this, pageClients.co
ntextMenuClient)) | 123 , m_contextMenuController(ContextMenuController::create(this, pageClients.co
ntextMenuClient)) |
124 , m_inspectorController(InspectorController::create(this, pageClients.inspec
torClient)) | 124 , m_inspectorController(InspectorController::create(this, pageClients.inspec
torClient)) |
125 , m_pointerLockController(PointerLockController::create(this)) | 125 , m_pointerLockController(PointerLockController::create(this)) |
126 , m_undoStack(UndoStack::create()) | 126 , m_undoStack(UndoStack::create()) |
(...skipping 293 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
420 if (m_visibilityState == visibilityState) | 420 if (m_visibilityState == visibilityState) |
421 return; | 421 return; |
422 m_visibilityState = visibilityState; | 422 m_visibilityState = visibilityState; |
423 | 423 |
424 if (visibilityState == blink::PageVisibilityStateVisible) | 424 if (visibilityState == blink::PageVisibilityStateVisible) |
425 setTimerAlignmentInterval(DOMTimer::visiblePageAlignmentInterval()); | 425 setTimerAlignmentInterval(DOMTimer::visiblePageAlignmentInterval()); |
426 else | 426 else |
427 setTimerAlignmentInterval(DOMTimer::hiddenPageAlignmentInterval()); | 427 setTimerAlignmentInterval(DOMTimer::hiddenPageAlignmentInterval()); |
428 | 428 |
429 if (!isInitialState) | 429 if (!isInitialState) |
430 notifyPageVisibilityChanged(); | 430 lifecycleNotifier().notifyPageVisibilityChanged(); |
431 | 431 |
432 if (!isInitialState && m_mainFrame && m_mainFrame->isLocalFrame()) | 432 if (!isInitialState && m_mainFrame && m_mainFrame->isLocalFrame()) |
433 deprecatedLocalMainFrame()->didChangeVisibilityState(); | 433 deprecatedLocalMainFrame()->didChangeVisibilityState(); |
434 } | 434 } |
435 | 435 |
436 PageVisibilityState Page::visibilityState() const | 436 PageVisibilityState Page::visibilityState() const |
437 { | 437 { |
438 return m_visibilityState; | 438 return m_visibilityState; |
439 } | 439 } |
440 | 440 |
(...skipping 85 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
526 for (Frame* frame = mainFrame(); frame; frame = frame->tree().traverseNext()
) { | 526 for (Frame* frame = mainFrame(); frame; frame = frame->tree().traverseNext()
) { |
527 if (!frame->isLocalFrame()) | 527 if (!frame->isLocalFrame()) |
528 continue; | 528 continue; |
529 if (FrameView* view = toLocalFrame(frame)->view()) | 529 if (FrameView* view = toLocalFrame(frame)->view()) |
530 view->updateAcceleratedCompositingSettings(); | 530 view->updateAcceleratedCompositingSettings(); |
531 } | 531 } |
532 } | 532 } |
533 | 533 |
534 void Page::didCommitLoad(LocalFrame* frame) | 534 void Page::didCommitLoad(LocalFrame* frame) |
535 { | 535 { |
536 notifyDidCommitLoad(frame); | 536 lifecycleNotifier().notifyDidCommitLoad(frame); |
537 if (m_mainFrame == frame) { | 537 if (m_mainFrame == frame) { |
538 frame->console().clearMessages(); | 538 frame->console().clearMessages(); |
539 useCounter().didCommitLoad(); | 539 useCounter().didCommitLoad(); |
540 m_inspectorController->didCommitLoadForMainFrame(); | 540 m_inspectorController->didCommitLoadForMainFrame(); |
541 UserGestureIndicator::clearProcessedUserGestureSinceLoad(); | 541 UserGestureIndicator::clearProcessedUserGestureSinceLoad(); |
542 } | 542 } |
543 } | 543 } |
544 | 544 |
545 void Page::acceptLanguagesChanged() | 545 void Page::acceptLanguagesChanged() |
546 { | 546 { |
547 WillBeHeapVector<RefPtrWillBeMember<LocalFrame>> frames; | 547 WillBeHeapVector<RefPtrWillBeMember<LocalFrame>> frames; |
548 | 548 |
549 // Even though we don't fire an event from here, the LocalDOMWindow's will f
ire | 549 // Even though we don't fire an event from here, the LocalDOMWindow's will f
ire |
550 // an event so we keep the frames alive until we are done. | 550 // an event so we keep the frames alive until we are done. |
551 for (Frame* frame = mainFrame(); frame; frame = frame->tree().traverseNext()
) { | 551 for (Frame* frame = mainFrame(); frame; frame = frame->tree().traverseNext()
) { |
552 if (frame->isLocalFrame()) | 552 if (frame->isLocalFrame()) |
553 frames.append(toLocalFrame(frame)); | 553 frames.append(toLocalFrame(frame)); |
554 } | 554 } |
555 | 555 |
556 for (unsigned i = 0; i < frames.size(); ++i) | 556 for (unsigned i = 0; i < frames.size(); ++i) |
557 frames[i]->localDOMWindow()->acceptLanguagesChanged(); | 557 frames[i]->localDOMWindow()->acceptLanguagesChanged(); |
558 } | 558 } |
559 | 559 |
| 560 PageLifecycleNotifier& Page::lifecycleNotifier() |
| 561 { |
| 562 return static_cast<PageLifecycleNotifier&>(LifecycleContext<Page>::lifecycle
Notifier()); |
| 563 } |
| 564 |
| 565 PassOwnPtr<LifecycleNotifier<Page>> Page::createLifecycleNotifier() |
| 566 { |
| 567 return PageLifecycleNotifier::create(this); |
| 568 } |
| 569 |
560 void Page::trace(Visitor* visitor) | 570 void Page::trace(Visitor* visitor) |
561 { | 571 { |
562 #if ENABLE(OILPAN) | 572 #if ENABLE(OILPAN) |
563 visitor->trace(m_animator); | 573 visitor->trace(m_animator); |
564 visitor->trace(m_dragCaretController); | 574 visitor->trace(m_dragCaretController); |
565 visitor->trace(m_dragController); | 575 visitor->trace(m_dragController); |
566 visitor->trace(m_focusController); | 576 visitor->trace(m_focusController); |
567 visitor->trace(m_contextMenuController); | 577 visitor->trace(m_contextMenuController); |
568 visitor->trace(m_inspectorController); | 578 visitor->trace(m_inspectorController); |
569 visitor->trace(m_pointerLockController); | 579 visitor->trace(m_pointerLockController); |
570 visitor->trace(m_undoStack); | 580 visitor->trace(m_undoStack); |
571 visitor->trace(m_mainFrame); | 581 visitor->trace(m_mainFrame); |
572 visitor->trace(m_validationMessageClient); | 582 visitor->trace(m_validationMessageClient); |
573 visitor->trace(m_multisamplingChangedObservers); | 583 visitor->trace(m_multisamplingChangedObservers); |
574 visitor->trace(m_frameHost); | 584 visitor->trace(m_frameHost); |
575 HeapSupplementable<Page>::trace(visitor); | 585 HeapSupplementable<Page>::trace(visitor); |
576 #endif | 586 #endif |
577 PageLifecycleNotifier::trace(visitor); | 587 LifecycleContext<Page>::trace(visitor); |
578 } | 588 } |
579 | 589 |
580 void Page::willBeDestroyed() | 590 void Page::willBeDestroyed() |
581 { | 591 { |
582 // Destroy inspector first, since it uses frame and view during destruction. | 592 // Destroy inspector first, since it uses frame and view during destruction. |
583 m_inspectorController->willBeDestroyed(); | 593 m_inspectorController->willBeDestroyed(); |
584 | 594 |
585 RefPtrWillBeRawPtr<Frame> mainFrame = m_mainFrame; | 595 RefPtrWillBeRawPtr<Frame> mainFrame = m_mainFrame; |
586 | 596 |
587 mainFrame->detach(); | 597 mainFrame->detach(); |
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
620 , inspectorClient(nullptr) | 630 , inspectorClient(nullptr) |
621 , spellCheckerClient(nullptr) | 631 , spellCheckerClient(nullptr) |
622 { | 632 { |
623 } | 633 } |
624 | 634 |
625 Page::PageClients::~PageClients() | 635 Page::PageClients::~PageClients() |
626 { | 636 { |
627 } | 637 } |
628 | 638 |
629 } // namespace blink | 639 } // namespace blink |
OLD | NEW |