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

Side by Side Diff: third_party/WebKit/Source/web/mac/WebSubstringUtil.mm

Issue 2389633002: reflow comments in web/ (Closed)
Patch Set: . Created 4 years, 2 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) 2005, 2007, 2008 Apple Inc. All rights reserved. 2 * Copyright (C) 2005, 2007, 2008 Apple Inc. All rights reserved.
3 * Copyright (C) 2011 Google Inc. All rights reserved. 3 * Copyright (C) 2011 Google Inc. All rights reserved.
4 * 4 *
5 * Redistribution and use in source and binary forms, with or without 5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions are 6 * modification, are permitted provided that the following conditions are
7 * met: 7 * met:
8 * 8 *
9 * * Redistributions of source code must retain the above copyright 9 * * Redistributions of source code must retain the above copyright
10 * notice, this list of conditions and the following disclaimer. 10 * notice, this list of conditions and the following disclaimer.
(...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after
61 61
62 static NSAttributedString* attributedSubstringFromRange( 62 static NSAttributedString* attributedSubstringFromRange(
63 const EphemeralRange& range) { 63 const EphemeralRange& range) {
64 NSMutableAttributedString* string = [[NSMutableAttributedString alloc] init]; 64 NSMutableAttributedString* string = [[NSMutableAttributedString alloc] init];
65 NSMutableDictionary* attrs = [NSMutableDictionary dictionary]; 65 NSMutableDictionary* attrs = [NSMutableDictionary dictionary];
66 size_t length = range.endPosition().computeOffsetInContainerNode() - 66 size_t length = range.endPosition().computeOffsetInContainerNode() -
67 range.startPosition().computeOffsetInContainerNode(); 67 range.startPosition().computeOffsetInContainerNode();
68 68
69 unsigned position = 0; 69 unsigned position = 0;
70 70
71 // TODO(dglazkov): The use of updateStyleAndLayoutIgnorePendingStylesheets nee ds to be audited. 71 // TODO(dglazkov): The use of updateStyleAndLayoutIgnorePendingStylesheets
72 // see http://crbug.com/590369 for more details. 72 // needs to be audited. see http://crbug.com/590369 for more details.
73 range.startPosition() 73 range.startPosition()
74 .document() 74 .document()
75 ->updateStyleAndLayoutIgnorePendingStylesheets(); 75 ->updateStyleAndLayoutIgnorePendingStylesheets();
76 76
77 for (TextIterator it(range.startPosition(), range.endPosition()); 77 for (TextIterator it(range.startPosition(), range.endPosition());
78 !it.atEnd() && [string length] < length; it.advance()) { 78 !it.atEnd() && [string length] < length; it.advance()) {
79 unsigned numCharacters = it.length(); 79 unsigned numCharacters = it.length();
80 if (!numCharacters) 80 if (!numCharacters)
81 continue; 81 continue;
82 82
83 Node* container = it.currentContainer(); 83 Node* container = it.currentContainer();
84 LayoutObject* layoutObject = container->layoutObject(); 84 LayoutObject* layoutObject = container->layoutObject();
85 DCHECK(layoutObject); 85 DCHECK(layoutObject);
86 if (!layoutObject) 86 if (!layoutObject)
87 continue; 87 continue;
88 88
89 const ComputedStyle* style = layoutObject->style(); 89 const ComputedStyle* style = layoutObject->style();
90 const FontPlatformData& fontPlatformData = 90 const FontPlatformData& fontPlatformData =
91 style->font().primaryFont()->platformData(); 91 style->font().primaryFont()->platformData();
92 NSFont* font = toNSFont(fontPlatformData.ctFont()); 92 NSFont* font = toNSFont(fontPlatformData.ctFont());
93 // If the platform font can't be loaded, or the size is incorrect comparing 93 // If the platform font can't be loaded, or the size is incorrect comparing
94 // to the computed style, it's likely that the site is using a web font. 94 // to the computed style, it's likely that the site is using a web font.
95 // For now, just use the default font instead. 95 // For now, just use the default font instead.
96 // TODO(rsesek): Change the font activation flags to allow other processes 96 // TODO(rsesek): Change the font activation flags to allow other processes
97 // to use the font. 97 // to use the font.
98 // TODO(shuchen): Support scaling the font as necessary according to CSS tra nsforms. 98 // TODO(shuchen): Support scaling the font as necessary according to CSS
99 // transforms.
99 if (!font || 100 if (!font ||
100 floor(fontPlatformData.size()) != 101 floor(fontPlatformData.size()) !=
101 floor([[font fontDescriptor] pointSize])) 102 floor([[font fontDescriptor] pointSize]))
102 font = [NSFont 103 font = [NSFont
103 systemFontOfSize:style->font().getFontDescription().computedSize()]; 104 systemFontOfSize:style->font().getFontDescription().computedSize()];
104 [attrs setObject:font forKey:NSFontAttributeName]; 105 [attrs setObject:font forKey:NSFontAttributeName];
105 106
106 if (style->visitedDependentColor(CSSPropertyColor).alpha()) 107 if (style->visitedDependentColor(CSSPropertyColor).alpha())
107 [attrs setObject:nsColor(style->visitedDependentColor(CSSPropertyColor)) 108 [attrs setObject:nsColor(style->visitedDependentColor(CSSPropertyColor))
108 forKey:NSForegroundColorAttributeName]; 109 forKey:NSForegroundColorAttributeName];
(...skipping 92 matching lines...) Expand 10 before | Expand all | Expand 10 after
201 if (ephemeralRange.isNull()) 202 if (ephemeralRange.isNull())
202 return nil; 203 return nil;
203 204
204 NSAttributedString* result = attributedSubstringFromRange(ephemeralRange); 205 NSAttributedString* result = attributedSubstringFromRange(ephemeralRange);
205 if (baselinePoint) 206 if (baselinePoint)
206 *baselinePoint = getBaselinePoint(frame->view(), ephemeralRange, result); 207 *baselinePoint = getBaselinePoint(frame->view(), ephemeralRange, result);
207 return result; 208 return result;
208 } 209 }
209 210
210 } // namespace blink 211 } // namespace blink
OLDNEW
« no previous file with comments | « third_party/WebKit/Source/web/WebViewImpl.cpp ('k') | third_party/WebKit/Source/web/tests/WebFrameTest.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698