Changeset 65273 in webkit
- Timestamp:
- Aug 12, 2010 3:40:56 PM (14 years ago)
- Location:
- trunk
- Files:
-
- 9 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/WebCore/ChangeLog
r65272 r65273 1 2010-08-12 Aaron Boodman <aa@chromium.org> 2 3 Reviewed by David Hyatt. 4 5 Make the cascade level of "user" styles configurable 6 https://bugs.webkit.org/show_bug.cgi?id=43457 7 8 * WebCore.exp.in: 9 * css/CSSStyleSelector.cpp: 10 (WebCore::CSSStyleSelector::CSSStyleSelector): 11 * dom/Document.cpp: 12 (WebCore::Document::pageGroupUserSheets): 13 * page/PageGroup.cpp: 14 (WebCore::PageGroup::addUserStyleSheetToWorld): 15 * page/PageGroup.h: 16 * page/UserStyleSheet.h: 17 (WebCore::UserStyleSheet::): 18 (WebCore::UserStyleSheet::UserStyleSheet): 19 (WebCore::UserStyleSheet::level): 20 1 21 2010-08-12 Jian Li <jianli@chromium.org> 2 22 -
trunk/WebCore/WebCore.exp.in
r65234 r65273 821 821 __ZN7WebCore9PageGroup20removeAllUserContentEv 822 822 __ZN7WebCore9PageGroup21removeAllVisitedLinksEv 823 __ZN7WebCore9PageGroup24addUserStyleSheetToWorldEPNS_15DOMWrapperWorldERKN3WTF6StringERKNS_4KURLENS3_10PassOwnPtrINS3_6VectorIS4_Lm0EEEEESD_NS_25UserContentInjectedFramesE 823 __ZN7WebCore9PageGroup24addUserStyleSheetToWorldEPNS_15DOMWrapperWorldERKN3WTF6StringERKNS_4KURLENS3_10PassOwnPtrINS3_6VectorIS4_Lm0EEEEESD_NS_25UserContentInjectedFramesENS_14UserStyleSheet5LevelE 824 824 __ZN7WebCore9PageGroup25removeUserScriptFromWorldEPNS_15DOMWrapperWorldERKNS_4KURLE 825 825 __ZN7WebCore9PageGroup26removeUserScriptsFromWorldEPNS_15DOMWrapperWorldE -
trunk/WebCore/css/CSSStyleSelector.cpp
r65205 r65273 459 459 } 460 460 461 m_authorStyle = new CSSRuleSet(); 462 461 463 // FIXME: This sucks! The user sheet is reparsed every time! 462 if (pageUserSheet || pageGroupUserSheets) { 463 m_userStyle = new CSSRuleSet(); 464 if (pageUserSheet) 465 m_userStyle->addRulesFromSheet(pageUserSheet, *m_medium, this); 466 if (pageGroupUserSheets) { 467 unsigned length = pageGroupUserSheets->size(); 468 for (unsigned i = 0; i < length; i++) 469 m_userStyle->addRulesFromSheet(pageGroupUserSheets->at(i).get(), *m_medium, this); 470 } 471 } 472 473 // add stylesheets from document 474 m_authorStyle = new CSSRuleSet(); 475 464 OwnPtr<CSSRuleSet> tempUserStyle(new CSSRuleSet); 465 if (pageUserSheet) 466 tempUserStyle->addRulesFromSheet(pageUserSheet, *m_medium, this); 467 if (pageGroupUserSheets) { 468 unsigned length = pageGroupUserSheets->size(); 469 for (unsigned i = 0; i < length; i++) { 470 if (pageGroupUserSheets->at(i)->isUserStyleSheet()) 471 tempUserStyle->addRulesFromSheet(pageGroupUserSheets->at(i).get(), *m_medium, this); 472 else 473 m_authorStyle->addRulesFromSheet(pageGroupUserSheets->at(i).get(), *m_medium, this); 474 } 475 } 476 477 if (tempUserStyle->m_ruleCount > 0 || tempUserStyle->m_pageRuleCount > 0) 478 m_userStyle = tempUserStyle.leakPtr(); 479 476 480 // Add rules from elements like SVG's <font-face> 477 481 if (mappedElementSheet) 478 482 m_authorStyle->addRulesFromSheet(mappedElementSheet, *m_medium, this); 479 483 484 // add stylesheets from document 480 485 unsigned length = styleSheets->length(); 481 486 for (unsigned i = 0; i < length; i++) { … … 484 489 m_authorStyle->addRulesFromSheet(static_cast<CSSStyleSheet*>(sheet), *m_medium, this); 485 490 } 486 491 487 492 if (doc->renderer() && doc->renderer()->style()) 488 493 doc->renderer()->style()->font().update(fontSelector()); -
trunk/WebCore/dom/Document.cpp
r65193 r65273 2226 2226 continue; 2227 2227 RefPtr<CSSStyleSheet> parsedSheet = CSSStyleSheet::createInline(const_cast<Document*>(this), sheet->url()); 2228 parsedSheet->setIsUserStyleSheet( true);2228 parsedSheet->setIsUserStyleSheet(sheet->level() == UserStyleSheet::UserLevel); 2229 2229 parsedSheet->parseString(sheet->source(), !inCompatMode()); 2230 2230 if (!m_pageGroupUserSheets) -
trunk/WebCore/page/PageGroup.cpp
r65234 r65273 237 237 void PageGroup::addUserStyleSheetToWorld(DOMWrapperWorld* world, const String& source, const KURL& url, 238 238 PassOwnPtr<Vector<String> > whitelist, PassOwnPtr<Vector<String> > blacklist, 239 UserContentInjectedFrames injectedFrames) 240 { 241 ASSERT_ARG(world, world); 242 243 OwnPtr<UserStyleSheet> userStyleSheet(new UserStyleSheet(source, url, whitelist, blacklist, injectedFrames)); 239 UserContentInjectedFrames injectedFrames, 240 UserStyleSheet::Level level) 241 { 242 ASSERT_ARG(world, world); 243 244 OwnPtr<UserStyleSheet> userStyleSheet(new UserStyleSheet(source, url, whitelist, blacklist, injectedFrames, level)); 244 245 if (!m_userStyleSheets) 245 246 m_userStyleSheets.set(new UserStyleSheetMap); -
trunk/WebCore/page/PageGroup.h
r65234 r65273 81 81 void addUserStyleSheetToWorld(DOMWrapperWorld*, const String& source, const KURL&, 82 82 PassOwnPtr<Vector<String> > whitelist, PassOwnPtr<Vector<String> > blacklist, 83 UserContentInjectedFrames); 83 UserContentInjectedFrames, 84 UserStyleSheet::Level level = UserStyleSheet::UserLevel); 84 85 85 86 void removeUserScriptFromWorld(DOMWrapperWorld*, const KURL&); -
trunk/WebCore/page/UserStyleSheet.h
r65193 r65273 38 38 class UserStyleSheet : public Noncopyable { 39 39 public: 40 enum Level { 41 UserLevel, 42 AuthorLevel 43 }; 44 40 45 UserStyleSheet(const String& source, const KURL& url, 41 46 PassOwnPtr<Vector<String> > whitelist, PassOwnPtr<Vector<String> > blacklist, 42 UserContentInjectedFrames injectedFrames )47 UserContentInjectedFrames injectedFrames, Level level) 43 48 : m_source(source) 44 49 , m_url(url) … … 46 51 , m_blacklist(blacklist) 47 52 , m_injectedFrames(injectedFrames) 53 , m_level(level) 48 54 { 49 55 } … … 54 60 const Vector<String>* blacklist() const { return m_blacklist.get(); } 55 61 UserContentInjectedFrames injectedFrames() const { return m_injectedFrames; } 62 Level level() const { return m_level; } 56 63 57 64 private: … … 61 68 OwnPtr<Vector<String> > m_blacklist; 62 69 UserContentInjectedFrames m_injectedFrames; 70 Level m_level; 63 71 }; 64 72 -
trunk/WebKit/chromium/ChangeLog
r65251 r65273 1 2010-08-12 Aaron Boodman <aa@chromium.org> 2 3 Reviewed by David Hyatt. 4 5 Make the cascade level of "user" styles configurable 6 https://bugs.webkit.org/show_bug.cgi?id=43457 7 8 * src/WebViewImpl.cpp: 9 (WebKit::WebView::addUserStyleSheet): 10 1 11 2010-08-12 John Gregg <johnnyg@google.com> 2 12 -
trunk/WebKit/chromium/src/WebViewImpl.cpp
r65193 r65273 1950 1950 PageGroup* pageGroup = PageGroup::pageGroup(pageGroupName); 1951 1951 RefPtr<DOMWrapperWorld> world(DOMWrapperWorld::create()); 1952 1953 // FIXME: Current callers always want the level to be "author". It probably makes sense to let 1954 // callers specify this though, since in other cases the caller will probably want "user" level. 1955 // 1956 // FIXME: It would be nice to populate the URL correctly, instead of passing an empty URL. 1952 1957 pageGroup->addUserStyleSheetToWorld(world.get(), sourceCode, WebURL(), patterns.release(), 0, 1953 static_cast<UserContentInjectedFrames>(injectIn)); 1958 static_cast<UserContentInjectedFrames>(injectIn), 1959 UserStyleSheet::AuthorLevel); 1954 1960 } 1955 1961
Note: See TracChangeset
for help on using the changeset viewer.