Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(226)

Side by Side Diff: third_party/WebKit/Source/core/dom/Document.cpp

Issue 2116283002: Don't let rounding prematurely influence document size when printing (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@620456-2
Patch Set: bug 467579 Created 4 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 /* 1 /*
2 * Copyright (C) 1999 Lars Knoll (knoll@kde.org) 2 * Copyright (C) 1999 Lars Knoll (knoll@kde.org)
3 * (C) 1999 Antti Koivisto (koivisto@kde.org) 3 * (C) 1999 Antti Koivisto (koivisto@kde.org)
4 * (C) 2001 Dirk Mueller (mueller@kde.org) 4 * (C) 2001 Dirk Mueller (mueller@kde.org)
5 * (C) 2006 Alexey Proskuryakov (ap@webkit.org) 5 * (C) 2006 Alexey Proskuryakov (ap@webkit.org)
6 * Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009, 2011, 2012 Apple Inc. All r ights reserved. 6 * Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009, 2011, 2012 Apple Inc. All r ights reserved.
7 * Copyright (C) 2008, 2009 Torch Mobile Inc. All rights reserved. (http://www.t orchmobile.com/) 7 * Copyright (C) 2008, 2009 Torch Mobile Inc. All rights reserved. (http://www.t orchmobile.com/)
8 * Copyright (C) 2008, 2009, 2011, 2012 Google Inc. All rights reserved. 8 * Copyright (C) 2008, 2009, 2011, 2012 Google Inc. All rights reserved.
9 * Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies) 9 * Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies)
10 * Copyright (C) Research In Motion Limited 2010-2011. All rights reserved. 10 * Copyright (C) Research In Motion Limited 2010-2011. All rights reserved.
(...skipping 1976 matching lines...) Expand 10 before | Expand all | Expand 10 after
1987 { 1987 {
1988 updateDistribution(); 1988 updateDistribution();
1989 return ensureStyleResolver().styleForPage(pageIndex); 1989 return ensureStyleResolver().styleForPage(pageIndex);
1990 } 1990 }
1991 1991
1992 bool Document::isPageBoxVisible(int pageIndex) 1992 bool Document::isPageBoxVisible(int pageIndex)
1993 { 1993 {
1994 return styleForPage(pageIndex)->visibility() != HIDDEN; // display property doesn't apply to @page. 1994 return styleForPage(pageIndex)->visibility() != HIDDEN; // display property doesn't apply to @page.
1995 } 1995 }
1996 1996
1997 void Document::pageSizeAndMarginsInPixels(int pageIndex, IntSize& pageSize, int& marginTop, int& marginRight, int& marginBottom, int& marginLeft) 1997 void Document::pageSizeAndMarginsInPixels(int pageIndex, DoubleSize& pageSize, i nt& marginTop, int& marginRight, int& marginBottom, int& marginLeft)
1998 { 1998 {
1999 RefPtr<ComputedStyle> style = styleForPage(pageIndex); 1999 RefPtr<ComputedStyle> style = styleForPage(pageIndex);
2000 2000
2001 int width = pageSize.width(); 2001 double width = pageSize.width();
2002 int height = pageSize.height(); 2002 double height = pageSize.height();
2003 switch (style->getPageSizeType()) { 2003 switch (style->getPageSizeType()) {
2004 case PAGE_SIZE_AUTO: 2004 case PAGE_SIZE_AUTO:
2005 break; 2005 break;
2006 case PAGE_SIZE_AUTO_LANDSCAPE: 2006 case PAGE_SIZE_AUTO_LANDSCAPE:
2007 if (width < height) 2007 if (width < height)
2008 std::swap(width, height); 2008 std::swap(width, height);
2009 break; 2009 break;
2010 case PAGE_SIZE_AUTO_PORTRAIT: 2010 case PAGE_SIZE_AUTO_PORTRAIT:
2011 if (width > height) 2011 if (width > height)
2012 std::swap(width, height); 2012 std::swap(width, height);
2013 break; 2013 break;
2014 case PAGE_SIZE_RESOLVED: { 2014 case PAGE_SIZE_RESOLVED: {
2015 FloatSize size = style->pageSize(); 2015 FloatSize size = style->pageSize();
2016 width = size.width(); 2016 width = size.width();
2017 height = size.height(); 2017 height = size.height();
2018 break; 2018 break;
2019 } 2019 }
2020 default: 2020 default:
2021 ASSERT_NOT_REACHED(); 2021 ASSERT_NOT_REACHED();
2022 } 2022 }
2023 pageSize = IntSize(width, height); 2023 pageSize = DoubleSize(width, height);
2024 2024
2025 // The percentage is calculated with respect to the width even for margin to p and bottom. 2025 // The percentage is calculated with respect to the width even for margin to p and bottom.
2026 // http://www.w3.org/TR/CSS2/box.html#margin-properties 2026 // http://www.w3.org/TR/CSS2/box.html#margin-properties
2027 marginTop = style->marginTop().isAuto() ? marginTop : intValueForLength(styl e->marginTop(), width); 2027 marginTop = style->marginTop().isAuto() ? marginTop : intValueForLength(styl e->marginTop(), width);
2028 marginRight = style->marginRight().isAuto() ? marginRight : intValueForLengt h(style->marginRight(), width); 2028 marginRight = style->marginRight().isAuto() ? marginRight : intValueForLengt h(style->marginRight(), width);
2029 marginBottom = style->marginBottom().isAuto() ? marginBottom : intValueForLe ngth(style->marginBottom(), width); 2029 marginBottom = style->marginBottom().isAuto() ? marginBottom : intValueForLe ngth(style->marginBottom(), width);
2030 marginLeft = style->marginLeft().isAuto() ? marginLeft : intValueForLength(s tyle->marginLeft(), width); 2030 marginLeft = style->marginLeft().isAuto() ? marginLeft : intValueForLength(s tyle->marginLeft(), width);
2031 } 2031 }
2032 2032
2033 void Document::setIsViewSource(bool isViewSource) 2033 void Document::setIsViewSource(bool isViewSource)
(...skipping 3985 matching lines...) Expand 10 before | Expand all | Expand 10 after
6019 } 6019 }
6020 6020
6021 void showLiveDocumentInstances() 6021 void showLiveDocumentInstances()
6022 { 6022 {
6023 WeakDocumentSet& set = liveDocumentSet(); 6023 WeakDocumentSet& set = liveDocumentSet();
6024 fprintf(stderr, "There are %u documents currently alive:\n", set.size()); 6024 fprintf(stderr, "There are %u documents currently alive:\n", set.size());
6025 for (Document* document : set) 6025 for (Document* document : set)
6026 fprintf(stderr, "- Document %p URL: %s\n", document, document->url().get String().utf8().data()); 6026 fprintf(stderr, "- Document %p URL: %s\n", document, document->url().get String().utf8().data());
6027 } 6027 }
6028 #endif 6028 #endif
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698