| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright (C) 2007 Alp Toker <alp@atoker.com> | 2 * Copyright (C) 2007 Alp Toker <alp@atoker.com> |
| 3 * Copyright (C) 2007 Apple Inc. | 3 * Copyright (C) 2007 Apple Inc. |
| 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 * | 9 * |
| 10 * This library is distributed in the hope that it will be useful, | 10 * This library is distributed in the hope that it will be useful, |
| (...skipping 179 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 190 return nullptr; | 190 return nullptr; |
| 191 return toLayoutBoxModelObject(object); | 191 return toLayoutBoxModelObject(object); |
| 192 } | 192 } |
| 193 | 193 |
| 194 int PrintContext::pageNumberForElement(Element* element, const FloatSize& pageSi
zeInPixels) | 194 int PrintContext::pageNumberForElement(Element* element, const FloatSize& pageSi
zeInPixels) |
| 195 { | 195 { |
| 196 // Make sure the element is not freed during the layout. | 196 // Make sure the element is not freed during the layout. |
| 197 RefPtrWillBeRawPtr<Element> protect(element); | 197 RefPtrWillBeRawPtr<Element> protect(element); |
| 198 element->document().updateLayout(); | 198 element->document().updateLayout(); |
| 199 | 199 |
| 200 LayoutBoxModelObject* box = enclosingBoxModelObject(element->renderer()); | 200 LayoutBoxModelObject* box = enclosingBoxModelObject(element->layoutObject())
; |
| 201 if (!box) | 201 if (!box) |
| 202 return -1; | 202 return -1; |
| 203 | 203 |
| 204 LocalFrame* frame = element->document().frame(); | 204 LocalFrame* frame = element->document().frame(); |
| 205 FloatRect pageRect(FloatPoint(0, 0), pageSizeInPixels); | 205 FloatRect pageRect(FloatPoint(0, 0), pageSizeInPixels); |
| 206 PrintContext printContext(frame); | 206 PrintContext printContext(frame); |
| 207 printContext.begin(pageRect.width(), pageRect.height()); | 207 printContext.begin(pageRect.width(), pageRect.height()); |
| 208 FloatSize scaledPageSize = pageSizeInPixels; | 208 FloatSize scaledPageSize = pageSizeInPixels; |
| 209 scaledPageSize.scale(frame->view()->contentsSize().width() / pageRect.width(
)); | 209 scaledPageSize.scale(frame->view()->contentsSize().width() / pageRect.width(
)); |
| 210 printContext.computePageRectsWithPageSize(scaledPageSize, false); | 210 printContext.computePageRectsWithPageSize(scaledPageSize, false); |
| (...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 257 { | 257 { |
| 258 if (!m_linkAndLinkedDestinationsValid) { | 258 if (!m_linkAndLinkedDestinationsValid) { |
| 259 for (Frame* currentFrame = frame(); currentFrame; currentFrame = current
Frame->tree().traverseNext(frame())) { | 259 for (Frame* currentFrame = frame(); currentFrame; currentFrame = current
Frame->tree().traverseNext(frame())) { |
| 260 if (currentFrame->isLocalFrame()) | 260 if (currentFrame->isLocalFrame()) |
| 261 collectLinkAndLinkedDestinations(toLocalFrame(currentFrame)->doc
ument()); | 261 collectLinkAndLinkedDestinations(toLocalFrame(currentFrame)->doc
ument()); |
| 262 } | 262 } |
| 263 m_linkAndLinkedDestinationsValid = true; | 263 m_linkAndLinkedDestinationsValid = true; |
| 264 } | 264 } |
| 265 | 265 |
| 266 for (const auto& entry : m_linkDestinations) { | 266 for (const auto& entry : m_linkDestinations) { |
| 267 LayoutObject* renderer = entry.key->renderer(); | 267 LayoutObject* renderer = entry.key->layoutObject(); |
| 268 if (!renderer) | 268 if (!renderer) |
| 269 continue; | 269 continue; |
| 270 KURL url = entry.value; | 270 KURL url = entry.value; |
| 271 IntRect boundingBox = renderer->absoluteBoundingBoxRect(); | 271 IntRect boundingBox = renderer->absoluteBoundingBoxRect(); |
| 272 if (!pageRect.intersects(boundingBox)) | 272 if (!pageRect.intersects(boundingBox)) |
| 273 continue; | 273 continue; |
| 274 if (url.hasFragmentIdentifier() && equalIgnoringFragmentIdentifier(url,
renderer->document().baseURL())) { | 274 if (url.hasFragmentIdentifier() && equalIgnoringFragmentIdentifier(url,
renderer->document().baseURL())) { |
| 275 String name = url.fragmentIdentifier(); | 275 String name = url.fragmentIdentifier(); |
| 276 ASSERT(renderer->document().findAnchor(name)); | 276 ASSERT(renderer->document().findAnchor(name)); |
| 277 graphicsContext.setURLFragmentForRect(name, boundingBox); | 277 graphicsContext.setURLFragmentForRect(name, boundingBox); |
| 278 } else { | 278 } else { |
| 279 graphicsContext.setURLForRect(url, boundingBox); | 279 graphicsContext.setURLForRect(url, boundingBox); |
| 280 } | 280 } |
| 281 } | 281 } |
| 282 | 282 |
| 283 for (const auto& entry : m_linkedDestinations) { | 283 for (const auto& entry : m_linkedDestinations) { |
| 284 LayoutObject* renderer = entry.value->renderer(); | 284 LayoutObject* renderer = entry.value->layoutObject(); |
| 285 if (!renderer) | 285 if (!renderer) |
| 286 continue; | 286 continue; |
| 287 IntRect boundingBox = renderer->absoluteBoundingBoxRect(); | 287 IntRect boundingBox = renderer->absoluteBoundingBoxRect(); |
| 288 if (!pageRect.intersects(boundingBox)) | 288 if (!pageRect.intersects(boundingBox)) |
| 289 continue; | 289 continue; |
| 290 IntPoint point = boundingBox.minXMinYCorner(); | 290 IntPoint point = boundingBox.minXMinYCorner(); |
| 291 point.clampNegativeToZero(); | 291 point.clampNegativeToZero(); |
| 292 graphicsContext.addURLTargetAtPoint(entry.key, point); | 292 graphicsContext.addURLTargetAtPoint(entry.key, point); |
| 293 } | 293 } |
| 294 } | 294 } |
| (...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 350 DEFINE_TRACE(PrintContext) | 350 DEFINE_TRACE(PrintContext) |
| 351 { | 351 { |
| 352 #if ENABLE(OILPAN) | 352 #if ENABLE(OILPAN) |
| 353 visitor->trace(m_frame); | 353 visitor->trace(m_frame); |
| 354 visitor->trace(m_linkDestinations); | 354 visitor->trace(m_linkDestinations); |
| 355 visitor->trace(m_linkedDestinations); | 355 visitor->trace(m_linkedDestinations); |
| 356 #endif | 356 #endif |
| 357 } | 357 } |
| 358 | 358 |
| 359 } | 359 } |
| OLD | NEW |