| 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 39 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 50 #include "core/page/FrameTree.h" | 50 #include "core/page/FrameTree.h" |
| 51 #include "core/page/PageLifecycleNotifier.h" | 51 #include "core/page/PageLifecycleNotifier.h" |
| 52 #include "core/page/PointerLockController.h" | 52 #include "core/page/PointerLockController.h" |
| 53 #include "core/page/StorageClient.h" | 53 #include "core/page/StorageClient.h" |
| 54 #include "core/page/ValidationMessageClient.h" | 54 #include "core/page/ValidationMessageClient.h" |
| 55 #include "core/page/scrolling/ScrollingCoordinator.h" | 55 #include "core/page/scrolling/ScrollingCoordinator.h" |
| 56 #include "core/rendering/FastTextAutosizer.h" | 56 #include "core/rendering/FastTextAutosizer.h" |
| 57 #include "core/rendering/RenderView.h" | 57 #include "core/rendering/RenderView.h" |
| 58 #include "core/rendering/TextAutosizer.h" | 58 #include "core/rendering/TextAutosizer.h" |
| 59 #include "core/storage/StorageNamespace.h" | 59 #include "core/storage/StorageNamespace.h" |
| 60 #include "platform/graphics/BitmapImage.h" |
| 61 #include "platform/graphics/GraphicsScreen.h" |
| 60 #include "platform/plugins/PluginData.h" | 62 #include "platform/plugins/PluginData.h" |
| 61 #include "wtf/HashMap.h" | 63 #include "wtf/HashMap.h" |
| 62 #include "wtf/RefCountedLeakCounter.h" | 64 #include "wtf/RefCountedLeakCounter.h" |
| 63 #include "wtf/StdLibExtras.h" | 65 #include "wtf/StdLibExtras.h" |
| 64 #include "wtf/text/Base64.h" | 66 #include "wtf/text/Base64.h" |
| 65 | 67 |
| 66 namespace WebCore { | 68 namespace WebCore { |
| 67 | 69 |
| 68 DEFINE_DEBUG_ONLY_GLOBAL(WTF::RefCountedLeakCounter, pageCounter, ("Page")); | 70 DEFINE_DEBUG_ONLY_GLOBAL(WTF::RefCountedLeakCounter, pageCounter, ("Page")); |
| 69 | 71 |
| (...skipping 478 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 548 void Page::updateAcceleratedCompositingSettings() | 550 void Page::updateAcceleratedCompositingSettings() |
| 549 { | 551 { |
| 550 for (Frame* frame = mainFrame(); frame; frame = frame->tree().traverseNext()
) { | 552 for (Frame* frame = mainFrame(); frame; frame = frame->tree().traverseNext()
) { |
| 551 if (!frame->isLocalFrame()) | 553 if (!frame->isLocalFrame()) |
| 552 continue; | 554 continue; |
| 553 if (FrameView* view = toLocalFrame(frame)->view()) | 555 if (FrameView* view = toLocalFrame(frame)->view()) |
| 554 view->updateAcceleratedCompositingSettings(); | 556 view->updateAcceleratedCompositingSettings(); |
| 555 } | 557 } |
| 556 } | 558 } |
| 557 | 559 |
| 560 void Page::deviceColorProfileChanged(const char* profile, size_t size) |
| 561 { |
| 562 HashSet<ImageResource*> colorProfiledImages; |
| 563 |
| 564 setScreenColorProfile(reinterpret_cast<long long>(this), profile, size); |
| 565 |
| 566 for (Frame* frame = mainFrame(); frame; frame = frame->tree().traverseNext()
) { |
| 567 // FIXME: How do OOPIF intend to co-ordinate their repaints with the pag
e when high |
| 568 // dpi and color profile changes update to the page()s screen? See crbug
.com/239624 |
| 569 // to see what happens when paint does not co-ordinate with the screen u
pdates sent |
| 570 // by the Browser::RWH::WasResized IPC. |
| 571 if (!frame->isLocalFrame()) |
| 572 continue; |
| 573 const ResourceFetcher::DocumentResourceMap& resources = toLocalFrame(fra
me)->document()->fetcher()->allResources(); |
| 574 for (ResourceFetcher::DocumentResourceMap::const_iterator it = resources
.begin(); it != resources.end(); ++it) { |
| 575 Resource* resource = it->value.get(); |
| 576 if (!resource->isImage()) |
| 577 continue; |
| 578 ImageResource* imageResource = toImageResource(resource); |
| 579 if (!imageResource->image()->isBitmapImage()) |
| 580 continue; |
| 581 if (imageResource->errorOccurred()) |
| 582 continue; |
| 583 if (toBitmapImage(imageResource->image())->hasColorProfile()) |
| 584 colorProfiledImages.add(imageResource); |
| 585 } |
| 586 } |
| 587 |
| 588 if (!colorProfiledImages.isEmpty()) |
| 589 ImageResource::updateBitmapImages(colorProfiledImages); |
| 590 } |
| 591 |
| 558 void Page::didCommitLoad(LocalFrame* frame) | 592 void Page::didCommitLoad(LocalFrame* frame) |
| 559 { | 593 { |
| 560 lifecycleNotifier().notifyDidCommitLoad(frame); | 594 lifecycleNotifier().notifyDidCommitLoad(frame); |
| 561 if (m_mainFrame == frame) { | 595 if (m_mainFrame == frame) { |
| 562 useCounter().didCommitLoad(); | 596 useCounter().didCommitLoad(); |
| 563 m_inspectorController->didCommitLoadForMainFrame(); | 597 m_inspectorController->didCommitLoadForMainFrame(); |
| 564 } | 598 } |
| 565 } | 599 } |
| 566 | 600 |
| 567 void Page::acceptLanguagesChanged() | 601 void Page::acceptLanguagesChanged() |
| (...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 609 // Disable all agents prior to resetting the frame view. | 643 // Disable all agents prior to resetting the frame view. |
| 610 m_inspectorController->willBeDestroyed(); | 644 m_inspectorController->willBeDestroyed(); |
| 611 | 645 |
| 612 if (m_mainFrame->isLocalFrame()) { | 646 if (m_mainFrame->isLocalFrame()) { |
| 613 toLocalFrame(m_mainFrame.get())->setView(nullptr); | 647 toLocalFrame(m_mainFrame.get())->setView(nullptr); |
| 614 } else { | 648 } else { |
| 615 ASSERT(m_mainFrame->isRemoteFrame()); | 649 ASSERT(m_mainFrame->isRemoteFrame()); |
| 616 toRemoteFrame(m_mainFrame.get())->setView(nullptr); | 650 toRemoteFrame(m_mainFrame.get())->setView(nullptr); |
| 617 } | 651 } |
| 618 | 652 |
| 653 removeScreenColorProfile(reinterpret_cast<long long>(this)); |
| 654 |
| 619 allPages().remove(this); | 655 allPages().remove(this); |
| 620 if (ordinaryPages().contains(this)) | 656 if (ordinaryPages().contains(this)) |
| 621 ordinaryPages().remove(this); | 657 ordinaryPages().remove(this); |
| 622 | 658 |
| 623 if (m_scrollingCoordinator) | 659 if (m_scrollingCoordinator) |
| 624 m_scrollingCoordinator->willBeDestroyed(); | 660 m_scrollingCoordinator->willBeDestroyed(); |
| 625 | 661 |
| 626 #ifndef NDEBUG | 662 #ifndef NDEBUG |
| 627 pageCounter.decrement(); | 663 pageCounter.decrement(); |
| 628 #endif | 664 #endif |
| (...skipping 15 matching lines...) Expand all Loading... |
| 644 , spellCheckerClient(0) | 680 , spellCheckerClient(0) |
| 645 , storageClient(0) | 681 , storageClient(0) |
| 646 { | 682 { |
| 647 } | 683 } |
| 648 | 684 |
| 649 Page::PageClients::~PageClients() | 685 Page::PageClients::~PageClients() |
| 650 { | 686 { |
| 651 } | 687 } |
| 652 | 688 |
| 653 } // namespace WebCore | 689 } // namespace WebCore |
| OLD | NEW |