Changeset 62876 in webkit
- Timestamp:
- Jul 8, 2010 6:15:07 PM (14 years ago)
- Location:
- trunk
- Files:
-
- 10 added
- 35 edited
- 1 copied
Legend:
- Unmodified
- Added
- Removed
-
trunk/LayoutTests/ChangeLog
r62875 r62876 1 2010-07-08 Aaron Boodman <aa@chromium.org> 2 3 Reviewed by Timothy Hatcher. 4 5 Add the ability for user scripts and user styles to affect just the top frame. 6 7 https://bugs.webkit.org/show_bug.cgi?id=41529 8 9 * platform/win/Skipped: Skipped test because WebKit API needs updating. 10 * userscripts/mixed-case-stylesheet.html: Added new allFrames param. 11 * userscripts/resources/frame1.html: Added. 12 * userscripts/resources/frame2.html: Added. 13 * userscripts/script-not-run-for-fragments.html: Added new allFrames param. 14 * userscripts/script-run-at-end.html: Ditto. 15 * userscripts/script-run-at-start.html: Ditto. 16 * userscripts/simple-stylesheet.html: Ditto. 17 * userscripts/user-script-all-frames-expected.txt: Added. 18 * userscripts/user-script-all-frames.html: Added. 19 * userscripts/user-script-top-frame-only-expected.txt: Added. 20 * userscripts/user-script-top-frame-only.html: Added. 21 * userscripts/user-style-all-frames-expected.txt: Added. 22 * userscripts/user-style-all-frames.html: Added. 23 * userscripts/user-style-top-frame-only-expected.txt: Added. 24 * userscripts/user-style-top-frame-only.html: Added. 25 1 26 2010-07-08 Adele Peterson <adele@apple.com> 2 27 -
trunk/LayoutTests/platform/win/Skipped
r62653 r62876 945 945 fast/images/large-size-image-crash.html 946 946 947 # Disable until the windows WebKit API supports injecting in the top frame only. 948 # https://bugs.webkit.org/show_bug.cgi?id=41800 949 userscripts/user-script-all-frames.html 950 userscripts/user-script-top-frame-only.html 951 userscripts/user-style-all-frames.html 952 userscripts/user-style-top-frame-only.html 953 userscripts/frameset-all-frames.html 954 userscripts/frameset-top-frame-only.html -
trunk/LayoutTests/userscripts/mixed-case-stylesheet.html
r54005 r62876 4 4 if (window.layoutTestController) { 5 5 window.layoutTestController.dumpAsText(); 6 window.layoutTestController.addUserStyleSheet("#mixedCase { display: none }" );6 window.layoutTestController.addUserStyleSheet("#mixedCase { display: none }", true); 7 7 } 8 8 </script> -
trunk/LayoutTests/userscripts/script-not-run-for-fragments.html
r53917 r62876 6 6 layoutTestController.dumpAsText(); 7 7 layoutTestController.waitUntilDone(); 8 layoutTestController.addUserScript("console.log('injected'); var div = document.createElement('div'); div.innerHTML = '<p>hi</p>';", true );8 layoutTestController.addUserScript("console.log('injected'); var div = document.createElement('div'); div.innerHTML = '<p>hi</p>';", true, true); 9 9 } 10 10 </script> -
trunk/LayoutTests/userscripts/script-run-at-end.html
r48057 r62876 5 5 if (window.layoutTestController) { 6 6 layoutTestController.dumpAsText(); 7 layoutTestController.addUserScript("document.getElementById('target').innerHTML = 'PASS'", false );7 layoutTestController.addUserScript("document.getElementById('target').innerHTML = 'PASS'", false, true); 8 8 } 9 9 </script> -
trunk/LayoutTests/userscripts/script-run-at-start.html
r53917 r62876 5 5 if (window.layoutTestController) { 6 6 layoutTestController.dumpAsText(); 7 layoutTestController.addUserScript("if (window.location == 'about:blank') console.log('SUCCESS');", true );7 layoutTestController.addUserScript("if (window.location == 'about:blank') console.log('SUCCESS');", true, true); 8 8 } 9 9 </script> -
trunk/LayoutTests/userscripts/simple-stylesheet.html
r48222 r62876 5 5 if (window.layoutTestController) { 6 6 layoutTestController.dumpAsText(); 7 layoutTestController.addUserStyleSheet("div { width:0; }" );7 layoutTestController.addUserStyleSheet("div { width:0; }", true); 8 8 } 9 9 </script> -
trunk/WebCore/ChangeLog
r62875 r62876 1 2010-07-08 Aaron Boodman <aa@chromium.org> 2 3 Reviewed by Timothy Hatcher. 4 5 Add the ability for user scripts and user styles to affect just the top frame. 6 7 https://bugs.webkit.org/show_bug.cgi?id=41529 8 9 Tests: userscripts/user-script-all-frames.html 10 userscripts/user-script-top-frame-only.html 11 userscripts/user-style-all-frames.html 12 userscripts/user-style-top-frame-only.html 13 14 * WebCore.base.exp: Update PageGroup method signatures. 15 * dom/Document.cpp: 16 (WebCore::Document::pageGroupUserSheets): Check allFrames before injecting. 17 * page/Frame.cpp: 18 (WebCore::Frame::injectUserScriptsForWorld): Ditto. 19 * page/PageGroup.cpp: 20 (WebCore::PageGroup::addUserScriptToWorld): 21 (WebCore::PageGroup::addUserStyleSheetToWorld): 22 * page/PageGroup.h: 23 * page/UserScript.h: 24 (WebCore::UserScript::UserScript): 25 (WebCore::UserScript::injectedFrames): 26 * page/UserScriptTypes.h: 27 (WebCore::): 28 * page/UserStyleSheet.h: 29 (WebCore::UserStyleSheet::UserStyleSheet): 30 (WebCore::UserStyleSheet::injectedFrames): 31 1 32 2010-07-08 Adele Peterson <adele@apple.com> 2 33 -
trunk/WebCore/GNUmakefile.am
r62792 r62876 1601 1601 WebCore/page/UserContentURLPattern.cpp \ 1602 1602 WebCore/page/UserContentURLPattern.h \ 1603 WebCore/page/UserContentTypes.h \ 1603 1604 WebCore/page/UserScript.h \ 1604 1605 WebCore/page/UserScriptTypes.h \ -
trunk/WebCore/WebCore.exp.in
r62816 r62876 751 751 __ZN7WebCore9PageGroup14addVisitedLinkEPKtm 752 752 __ZN7WebCore9PageGroup17closeLocalStorageEv 753 __ZN7WebCore9PageGroup20addUserScriptToWorldEPNS_15DOMWrapperWorldERKNS_6StringERKNS_4KURLEN3WTF10PassOwnPtrINS9_6VectorIS3_Lm0EEEEESD_NS_23UserScriptInjectionTimeE 753 __ZN7WebCore9PageGroup20addUserScriptToWorldEPNS_15DOMWrapperWorldERKNS_6StringERKNS_4KURLEN3WTF10PassOwnPtrINS9_6VectorIS3_Lm0EEEEESD_NS_23UserScriptInjectionTimeENS_25UserContentInjectedFramesE 754 754 __ZN7WebCore9PageGroup20removeAllUserContentEv 755 755 __ZN7WebCore9PageGroup21removeAllVisitedLinksEv 756 __ZN7WebCore9PageGroup24addUserStyleSheetToWorldEPNS_15DOMWrapperWorldERKNS_6StringERKNS_4KURLEN3WTF10PassOwnPtrINS9_6VectorIS3_Lm0EEEEESD_ 756 __ZN7WebCore9PageGroup24addUserStyleSheetToWorldEPNS_15DOMWrapperWorldERKNS_6StringERKNS_4KURLEN3WTF10PassOwnPtrINS9_6VectorIS3_Lm0EEEEESD_NS_25UserContentInjectedFramesE 757 757 __ZN7WebCore9PageGroup25removeUserScriptFromWorldEPNS_15DOMWrapperWorldERKNS_4KURLE 758 758 __ZN7WebCore9PageGroup26removeUserScriptsFromWorldEPNS_15DOMWrapperWorldE -
trunk/WebCore/WebCore.gypi
r62792 r62876 2037 2037 'page/UserContentURLPattern.cpp', 2038 2038 'page/UserContentURLPattern.h', 2039 'page/UserContentTypes.h', 2039 2040 'page/UserScript.h', 2040 2041 'page/UserScriptTypes.h', -
trunk/WebCore/WebCore.xcodeproj/project.pbxproj
r62792 r62876 36 36 0014628A103CD1DE000B20DB /* OriginAccessEntry.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 00146288103CD1DE000B20DB /* OriginAccessEntry.cpp */; }; 37 37 0014628B103CD1DE000B20DB /* OriginAccessEntry.h in Headers */ = {isa = PBXBuildFile; fileRef = 00146289103CD1DE000B20DB /* OriginAccessEntry.h */; }; 38 003F1FEA11E6AB43008258D9 /* UserContentTypes.h in Headers */ = {isa = PBXBuildFile; fileRef = 003F1FE911E6AB43008258D9 /* UserContentTypes.h */; settings = {ATTRIBUTES = (Private, ); }; }; 38 39 06027CAD0B1CBFC000884B2D /* ContextMenuItem.h in Headers */ = {isa = PBXBuildFile; fileRef = 06027CAC0B1CBFC000884B2D /* ContextMenuItem.h */; settings = {ATTRIBUTES = (Private, ); }; }; 39 40 06027CB30B1CC03D00884B2D /* ContextMenuItemMac.mm in Sources */ = {isa = PBXBuildFile; fileRef = 06027CB20B1CC03D00884B2D /* ContextMenuItemMac.mm */; }; … … 5650 5651 00146288103CD1DE000B20DB /* OriginAccessEntry.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = OriginAccessEntry.cpp; sourceTree = "<group>"; }; 5651 5652 00146289103CD1DE000B20DB /* OriginAccessEntry.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OriginAccessEntry.h; sourceTree = "<group>"; }; 5653 003F1FE911E6AB43008258D9 /* UserContentTypes.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = UserContentTypes.h; sourceTree = "<group>"; }; 5652 5654 06027CAC0B1CBFC000884B2D /* ContextMenuItem.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = ContextMenuItem.h; sourceTree = "<group>"; }; 5653 5655 06027CB20B1CC03D00884B2D /* ContextMenuItemMac.mm */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.objcpp; path = ContextMenuItemMac.mm; sourceTree = "<group>"; }; … … 12309 12311 8AF4E55911DC5A63000ED3DE /* Timing.h */, 12310 12312 8AF4E55A11DC5A63000ED3DE /* Timing.idl */, 12313 003F1FE911E6AB43008258D9 /* UserContentTypes.h */, 12311 12314 BCACF3BA1072921A00C0C8A3 /* UserContentURLPattern.cpp */, 12312 12315 BCACF3BB1072921A00C0C8A3 /* UserContentURLPattern.h */, … … 19729 19732 BCA8C83111E3D53200812FB7 /* BackForwardControllerClient.h in Headers */, 19730 19733 BCA8CA6011E4E6D100812FB7 /* BackForwardListImpl.h in Headers */, 19734 003F1FEA11E6AB43008258D9 /* UserContentTypes.h in Headers */, 19731 19735 ); 19732 19736 runOnlyForDeploymentPostprocessing = 0; -
trunk/WebCore/dom/Document.cpp
r62693 r62876 2155 2155 for (unsigned i = 0; i < sheets->size(); ++i) { 2156 2156 const UserStyleSheet* sheet = sheets->at(i).get(); 2157 if (sheet->injectedFrames() == InjectInTopFrameOnly && ownerElement()) 2158 continue; 2157 2159 if (!UserContentURLPattern::matchesPatterns(url(), sheet->whitelist(), sheet->blacklist())) 2158 2160 continue; -
trunk/WebCore/page/Frame.cpp
r62468 r62876 692 692 for (unsigned i = 0; i < count; ++i) { 693 693 UserScript* script = userScripts[i].get(); 694 if (script->injectedFrames() == InjectInTopFrameOnly && ownerElement()) 695 continue; 696 694 697 if (script->injectionTime() == injectionTime && UserContentURLPattern::matchesPatterns(doc->url(), script->whitelist(), script->blacklist())) 695 698 m_script.evaluateInWorld(ScriptSourceCode(script->source(), script->url()), world); -
trunk/WebCore/page/PageGroup.cpp
r56777 r62876 214 214 #endif 215 215 216 void PageGroup::addUserScriptToWorld(DOMWrapperWorld* world, const String& source, const KURL& url, PassOwnPtr<Vector<String> > whitelist, 217 PassOwnPtr<Vector<String> > blacklist, UserScriptInjectionTime injectionTime) 218 { 219 ASSERT_ARG(world, world); 220 221 OwnPtr<UserScript> userScript(new UserScript(source, url, whitelist, blacklist, injectionTime)); 216 void PageGroup::addUserScriptToWorld(DOMWrapperWorld* world, const String& source, const KURL& url, 217 PassOwnPtr<Vector<String> > whitelist, PassOwnPtr<Vector<String> > blacklist, 218 UserScriptInjectionTime injectionTime, UserContentInjectedFrames injectedFrames) 219 { 220 ASSERT_ARG(world, world); 221 222 OwnPtr<UserScript> userScript(new UserScript(source, url, whitelist, blacklist, injectionTime, injectedFrames)); 222 223 if (!m_userScripts) 223 224 m_userScripts.set(new UserScriptMap); … … 228 229 } 229 230 230 void PageGroup::addUserStyleSheetToWorld(DOMWrapperWorld* world, const String& source, const KURL& url, PassOwnPtr<Vector<String> > whitelist, 231 PassOwnPtr<Vector<String> > blacklist) 232 { 233 ASSERT_ARG(world, world); 234 235 OwnPtr<UserStyleSheet> userStyleSheet(new UserStyleSheet(source, url, whitelist, blacklist)); 231 void PageGroup::addUserStyleSheetToWorld(DOMWrapperWorld* world, const String& source, const KURL& url, 232 PassOwnPtr<Vector<String> > whitelist, PassOwnPtr<Vector<String> > blacklist, 233 UserContentInjectedFrames injectedFrames) 234 { 235 ASSERT_ARG(world, world); 236 237 OwnPtr<UserStyleSheet> userStyleSheet(new UserStyleSheet(source, url, whitelist, blacklist, injectedFrames)); 236 238 if (!m_userStyleSheets) 237 239 m_userStyleSheets.set(new UserStyleSheetMap); … … 240 242 styleSheetsInWorld = new UserStyleSheetVector; 241 243 styleSheetsInWorld->append(userStyleSheet.release()); 242 244 243 245 // Clear our cached sheets and have them just reparse. 244 246 HashSet<Page*>::const_iterator end = m_pages.end(); -
trunk/WebCore/page/PageGroup.h
r59034 r62876 75 75 #endif 76 76 77 void addUserScriptToWorld(DOMWrapperWorld*, const String& source, const KURL&, 77 void addUserScriptToWorld(DOMWrapperWorld*, const String& source, const KURL&, 78 78 PassOwnPtr<Vector<String> > whitelist, PassOwnPtr<Vector<String> > blacklist, 79 UserScriptInjectionTime );79 UserScriptInjectionTime, UserContentInjectedFrames); 80 80 void addUserStyleSheetToWorld(DOMWrapperWorld*, const String& source, const KURL&, 81 PassOwnPtr<Vector<String> > whitelist, PassOwnPtr<Vector<String> > blacklist); 82 81 PassOwnPtr<Vector<String> > whitelist, PassOwnPtr<Vector<String> > blacklist, 82 UserContentInjectedFrames); 83 83 84 void removeUserScriptFromWorld(DOMWrapperWorld*, const KURL&); 84 85 void removeUserStyleSheetFromWorld(DOMWrapperWorld*, const KURL&); 85 86 86 87 void removeUserScriptsFromWorld(DOMWrapperWorld*); 87 88 void removeUserStyleSheetsFromWorld(DOMWrapperWorld*); 88 89 89 90 void removeAllUserContent(); 90 91 91 92 const UserScriptMap* userScripts() const { return m_userScripts.get(); } 92 93 const UserStyleSheetMap* userStyleSheets() const { return m_userStyleSheets.get(); } -
trunk/WebCore/page/UserContentTypes.h
r62875 r62876 24 24 */ 25 25 26 #ifndef User StyleSheet_h27 #define User StyleSheet_h26 #ifndef UserContentTypes_h 27 #define UserContentTypes_h 28 28 29 #include "KURL.h" 30 #include "UserStyleSheetTypes.h" 31 #include <wtf/OwnPtr.h> 32 #include <wtf/PassOwnPtr.h> 29 #include <wtf/HashMap.h> 33 30 #include <wtf/Vector.h> 34 31 35 32 namespace WebCore { 36 33 37 class UserStyleSheet : public Noncopyable { 38 public: 39 UserStyleSheet(const String& source, const KURL& url, 40 PassOwnPtr<Vector<String> > whitelist, PassOwnPtr<Vector<String> > blacklist) 41 : m_source(source) 42 , m_url(url) 43 , m_whitelist(whitelist) 44 , m_blacklist(blacklist) 45 { 46 } 47 48 const String& source() const { return m_source; } 49 const KURL& url() const { return m_url; } 50 const Vector<String>* whitelist() const { return m_whitelist.get(); } 51 const Vector<String>* blacklist() const { return m_blacklist.get(); } 52 53 private: 54 String m_source; 55 KURL m_url; 56 OwnPtr<Vector<String> > m_whitelist; 57 OwnPtr<Vector<String> > m_blacklist; 58 }; 34 enum UserContentInjectedFrames { InjectInAllFrames, InjectInTopFrameOnly }; 59 35 60 36 } // namespace WebCore 61 37 62 #endif // User StyleSheet_h38 #endif // UserContentTypes_h -
trunk/WebCore/page/UserScript.h
r50907 r62876 28 28 29 29 #include "KURL.h" 30 #include "UserContentTypes.h" 30 31 #include "UserScriptTypes.h" 31 32 #include <wtf/OwnPtr.h> … … 39 40 UserScript(const String& source, const KURL& url, 40 41 PassOwnPtr<Vector<String> > whitelist, PassOwnPtr<Vector<String> > blacklist, 41 UserScriptInjectionTime injectionTime )42 UserScriptInjectionTime injectionTime, UserContentInjectedFrames injectedFrames) 42 43 : m_source(source) 43 44 , m_url(url) … … 45 46 , m_blacklist(blacklist) 46 47 , m_injectionTime(injectionTime) 48 , m_injectedFrames(injectedFrames) 47 49 { 48 50 } … … 53 55 const Vector<String>* blacklist() const { return m_blacklist.get(); } 54 56 UserScriptInjectionTime injectionTime() const { return m_injectionTime; } 55 57 UserContentInjectedFrames injectedFrames() const { return m_injectedFrames; } 58 56 59 private: 57 60 String m_source; … … 60 63 OwnPtr<Vector<String> > m_blacklist; 61 64 UserScriptInjectionTime m_injectionTime; 65 UserContentInjectedFrames m_injectedFrames; 62 66 }; 63 67 64 68 } // namespace WebCore 65 69 66 70 #endif // UserScript_h -
trunk/WebCore/page/UserStyleSheet.h
r50907 r62876 28 28 29 29 #include "KURL.h" 30 #include "UserContentTypes.h" 30 31 #include "UserStyleSheetTypes.h" 31 32 #include <wtf/OwnPtr.h> … … 38 39 public: 39 40 UserStyleSheet(const String& source, const KURL& url, 40 PassOwnPtr<Vector<String> > whitelist, PassOwnPtr<Vector<String> > blacklist) 41 PassOwnPtr<Vector<String> > whitelist, PassOwnPtr<Vector<String> > blacklist, 42 UserContentInjectedFrames injectedFrames) 41 43 : m_source(source) 42 44 , m_url(url) 43 45 , m_whitelist(whitelist) 44 46 , m_blacklist(blacklist) 47 , m_injectedFrames(injectedFrames) 45 48 { 46 49 } … … 50 53 const Vector<String>* whitelist() const { return m_whitelist.get(); } 51 54 const Vector<String>* blacklist() const { return m_blacklist.get(); } 55 UserContentInjectedFrames injectedFrames() const { return m_injectedFrames; } 52 56 53 57 private: … … 56 60 OwnPtr<Vector<String> > m_whitelist; 57 61 OwnPtr<Vector<String> > m_blacklist; 62 UserContentInjectedFrames m_injectedFrames; 58 63 }; 59 64 -
trunk/WebKit/chromium/ChangeLog
r62874 r62876 1 2010-07-08 Aaron Boodman <aa@chromium.org> 2 3 Reviewed by Timothy Hatcher. 4 5 Add the ability for user scripts and user styles to affect just the top frame. 6 7 https://bugs.webkit.org/show_bug.cgi?id=41529 8 9 * public/WebView.h: 10 (WebKit::WebView::): 11 (WebKit::WebView::addUserScript): 12 (WebKit::WebView::addUserStyleSheet): 13 * src/AssertMatchingEnums.cpp: 14 * src/WebViewImpl.cpp: 15 (WebKit::WebView::addUserScript): 16 (WebKit::WebView::addUserStyleSheet): 17 1 18 2010-07-08 James Robinson <jamesr@google.com> 2 19 -
trunk/WebKit/chromium/public/WebView.h
r62272 r62876 55 55 class WebView : public WebWidget { 56 56 public: 57 // Controls the time that user scripts injected into the document run. 58 enum UserScriptInjectAt { 59 UserScriptInjectAtDocumentStart, 60 UserScriptInjectAtDocumentEnd 61 }; 62 63 // Controls which frames user content is injected into. 64 enum UserContentInjectIn { 65 UserContentInjectInAllFrames, 66 UserContentInjectInTopFrameOnly 67 }; 68 57 69 // Initialization ------------------------------------------------------ 58 70 … … 287 299 virtual void addUserScript(const WebString& sourceCode, bool runAtStart) 288 300 { 289 addUserScript(sourceCode, WebVector<WebString>(), runAtStart); 301 addUserScript(sourceCode, WebVector<WebString>(), 302 runAtStart ? UserScriptInjectAtDocumentStart : UserScriptInjectAtDocumentEnd, 303 UserContentInjectInAllFrames); 290 304 } 291 305 virtual void addUserStyleSheet(const WebString& sourceCode) 292 306 { 293 addUserStyleSheet(sourceCode, WebVector<WebString>() );307 addUserStyleSheet(sourceCode, WebVector<WebString>(), UserContentInjectInAllFrames); 294 308 } 295 309 296 310 WEBKIT_API static void addUserScript(const WebString& sourceCode, 297 311 const WebVector<WebString>& patterns, 298 bool runAtStart); 312 UserScriptInjectAt injectAt, 313 UserContentInjectIn injectIn); 299 314 WEBKIT_API static void addUserStyleSheet(const WebString& sourceCode, 300 const WebVector<WebString>& patterns); 315 const WebVector<WebString>& patterns, 316 UserContentInjectIn injectIn); 301 317 WEBKIT_API static void removeAllUserContent(); 302 318 -
trunk/WebKit/chromium/src/AssertMatchingEnums.cpp
r61898 r62876 45 45 #include "StringImpl.h" 46 46 #include "TextAffinity.h" 47 #include "UserContentTypes.h" 48 #include "UserScriptTypes.h" 47 49 #include "WebAccessibilityObject.h" 48 50 #include "WebApplicationCacheHost.h" … … 57 59 #include "WebTextAffinity.h" 58 60 #include "WebTextCaseSensitivity.h" 61 #include "WebView.h" 59 62 #include <wtf/Assertions.h> 60 63 … … 313 316 COMPILE_ASSERT_MATCHING_ENUM(WebTextCaseSensitive, TextCaseSensitive); 314 317 COMPILE_ASSERT_MATCHING_ENUM(WebTextCaseInsensitive, TextCaseInsensitive); 318 319 COMPILE_ASSERT_MATCHING_ENUM(WebView::UserScriptInjectAtDocumentStart, InjectAtDocumentStart); 320 COMPILE_ASSERT_MATCHING_ENUM(WebView::UserScriptInjectAtDocumentEnd, InjectAtDocumentEnd); 321 COMPILE_ASSERT_MATCHING_ENUM(WebView::UserContentInjectInAllFrames, InjectInAllFrames); 322 COMPILE_ASSERT_MATCHING_ENUM(WebView::UserContentInjectInTopFrameOnly, InjectInTopFrameOnly); -
trunk/WebKit/chromium/src/WebViewImpl.cpp
r62791 r62876 1871 1871 } 1872 1872 1873 void WebView::addUserScript(const WebString& sourceCode, const WebVector<WebString>& patternsIn, bool runAtStart) 1873 void WebView::addUserScript(const WebString& sourceCode, 1874 const WebVector<WebString>& patternsIn, 1875 WebView::UserScriptInjectAt injectAt, 1876 WebView::UserContentInjectIn injectIn) 1874 1877 { 1875 1878 OwnPtr<Vector<String> > patterns(new Vector<String>); … … 1880 1883 RefPtr<DOMWrapperWorld> world(DOMWrapperWorld::create()); 1881 1884 pageGroup->addUserScriptToWorld(world.get(), sourceCode, WebURL(), patterns.release(), 0, 1882 runAtStart ? InjectAtDocumentStart : InjectAtDocumentEnd); 1883 } 1884 1885 void WebView::addUserStyleSheet(const WebString& sourceCode, const WebVector<WebString>& patternsIn) 1885 static_cast<UserScriptInjectionTime>(injectAt), 1886 static_cast<UserContentInjectedFrames>(injectIn)); 1887 } 1888 1889 void WebView::addUserStyleSheet(const WebString& sourceCode, 1890 const WebVector<WebString>& patternsIn, 1891 WebView::UserContentInjectIn injectIn) 1886 1892 { 1887 1893 OwnPtr<Vector<String> > patterns(new Vector<String>); … … 1891 1897 PageGroup* pageGroup = PageGroup::pageGroup(pageGroupName); 1892 1898 RefPtr<DOMWrapperWorld> world(DOMWrapperWorld::create()); 1893 pageGroup->addUserStyleSheetToWorld(world.get(), sourceCode, WebURL(), patterns.release(), 0); 1899 pageGroup->addUserStyleSheetToWorld(world.get(), sourceCode, WebURL(), patterns.release(), 0, 1900 static_cast<UserContentInjectedFrames>(injectIn)); 1894 1901 } 1895 1902 -
trunk/WebKit/mac/ChangeLog
r62875 r62876 1 2010-07-08 Aaron Boodman <aa@chromium.org> 2 3 Reviewed by Timothy Hatcher. 4 5 Add the ability for user scripts and user styles to affect just the top frame. 6 7 https://bugs.webkit.org/show_bug.cgi?id=41529 8 9 * WebView/WebView.mm: 10 (+[WebView _addUserScriptToGroup:world:source:url:whitelist:blacklist:injectionTime:]): 11 (+[WebView _addUserScriptToGroup:world:source:url:whitelist:blacklist:injectionTime:injectedFrames:]): 12 (+[WebView _addUserStyleSheetToGroup:world:source:url:whitelist:blacklist:]): 13 (+[WebView _addUserStyleSheetToGroup:world:source:url:whitelist:blacklist:injectedFrames:]): 14 * WebView/WebViewPrivate.h: 15 1 16 2010-07-08 Adele Peterson <adele@apple.com> 2 17 -
trunk/WebKit/mac/WebView/WebView.mm
r62676 r62876 2363 2363 2364 2364 + (void)_addUserScriptToGroup:(NSString *)groupName world:(WebScriptWorld *)world source:(NSString *)source url:(NSURL *)url 2365 whitelist:(NSArray *)whitelist blacklist:(NSArray *)blacklist injectionTime:(WebUserScriptInjectionTime)injectionTime 2365 whitelist:(NSArray *)whitelist blacklist:(NSArray *)blacklist 2366 injectionTime:(WebUserScriptInjectionTime)injectionTime 2367 { 2368 [WebView _addUserScriptToGroup:groupName world:world source:source url:url whitelist:whitelist blacklist:blacklist injectionTime:injectionTime injectedFrames:WebInjectInAllFrames]; 2369 } 2370 2371 + (void)_addUserScriptToGroup:(NSString *)groupName world:(WebScriptWorld *)world source:(NSString *)source url:(NSURL *)url 2372 whitelist:(NSArray *)whitelist blacklist:(NSArray *)blacklist 2373 injectionTime:(WebUserScriptInjectionTime)injectionTime 2374 injectedFrames:(WebUserContentInjectedFrames)injectedFrames 2366 2375 { 2367 2376 String group(groupName); … … 2374 2383 2375 2384 pageGroup->addUserScriptToWorld(core(world), source, url, toStringVector(whitelist), toStringVector(blacklist), 2376 injectionTime == WebInjectAtDocumentStart ? InjectAtDocumentStart : InjectAtDocumentEnd); 2385 injectionTime == WebInjectAtDocumentStart ? InjectAtDocumentStart : InjectAtDocumentEnd, 2386 injectedFrames == WebInjectInAllFrames ? InjectInAllFrames : InjectInTopFrameOnly); 2377 2387 } 2378 2388 … … 2380 2390 whitelist:(NSArray *)whitelist blacklist:(NSArray *)blacklist 2381 2391 { 2392 [WebView _addUserStyleSheetToGroup:groupName world:world source:source url:url whitelist:whitelist blacklist:blacklist injectedFrames:WebInjectInAllFrames]; 2393 } 2394 2395 + (void)_addUserStyleSheetToGroup:(NSString *)groupName world:(WebScriptWorld *)world source:(NSString *)source url:(NSURL *)url 2396 whitelist:(NSArray *)whitelist blacklist:(NSArray *)blacklist 2397 injectedFrames:(WebUserContentInjectedFrames)injectedFrames 2398 { 2382 2399 String group(groupName); 2383 2400 if (group.isEmpty()) … … 2388 2405 return; 2389 2406 2390 pageGroup->addUserStyleSheetToWorld(core(world), source, url, toStringVector(whitelist), toStringVector(blacklist) );2407 pageGroup->addUserStyleSheetToWorld(core(world), source, url, toStringVector(whitelist), toStringVector(blacklist), injectedFrames == WebInjectInAllFrames ? InjectInAllFrames : InjectInTopFrameOnly); 2391 2408 } 2392 2409 -
trunk/WebKit/mac/WebView/WebViewPrivate.h
r59418 r62876 89 89 } WebUserScriptInjectionTime; 90 90 91 typedef enum { 92 WebInjectInAllFrames, 93 WebInjectInTopFrameOnly 94 } WebUserContentInjectedFrames; 95 91 96 @interface WebController : NSTreeController { 92 97 IBOutlet WebView *webView; … … 505 510 + (void)_resetOriginAccessWhitelists; 506 511 512 // FIXME: The following two methods are deprecated in favor of the overloads below that take the WebUserContentInjectedFrames argument. https://bugs.webkit.org/show_bug.cgi?id=41800. 507 513 + (void)_addUserScriptToGroup:(NSString *)groupName world:(WebScriptWorld *)world source:(NSString *)source url:(NSURL *)url whitelist:(NSArray *)whitelist blacklist:(NSArray *)blacklist injectionTime:(WebUserScriptInjectionTime)injectionTime; 508 514 + (void)_addUserStyleSheetToGroup:(NSString *)groupName world:(WebScriptWorld *)world source:(NSString *)source url:(NSURL *)url whitelist:(NSArray *)whitelist blacklist:(NSArray *)blacklist; 515 516 + (void)_addUserScriptToGroup:(NSString *)groupName world:(WebScriptWorld *)world source:(NSString *)source url:(NSURL *)url whitelist:(NSArray *)whitelist blacklist:(NSArray *)blacklist injectionTime:(WebUserScriptInjectionTime)injectionTime injectedFrames:(WebUserContentInjectedFrames)injectedFrames; 517 + (void)_addUserStyleSheetToGroup:(NSString *)groupName world:(WebScriptWorld *)world source:(NSString *)source url:(NSURL *)url whitelist:(NSArray *)whitelist blacklist:(NSArray *)blacklist injectedFrames:(WebUserContentInjectedFrames)injectedFrames; 509 518 + (void)_removeUserScriptFromGroup:(NSString *)groupName world:(WebScriptWorld *)world url:(NSURL *)url; 510 519 + (void)_removeUserStyleSheetFromGroup:(NSString *)groupName world:(WebScriptWorld *)world url:(NSURL *)url; -
trunk/WebKit/win/ChangeLog
r62875 r62876 1 2010-07-08 Aaron Boodman <aa@chromium.org> 2 3 Reviewed by Timothy Hatcher. 4 5 Add the ability for user scripts and user styles to affect just the top frame. 6 7 https://bugs.webkit.org/show_bug.cgi?id=41529 8 9 * WebView.cpp: 10 (WebView::addUserScriptToGroup): 11 (WebView::addUserStyleSheetToGroup): 12 1 13 2010-07-08 Adele Peterson <adele@apple.com> 2 14 -
trunk/WebKit/win/WebView.cpp
r62676 r62876 5971 5971 pageGroup->addUserScriptToWorld(world->world(), toString(source), toKURL(url), 5972 5972 toStringVector(whitelistCount, whitelist), toStringVector(blacklistCount, blacklist), 5973 injectionTime == WebInjectAtDocumentStart ? InjectAtDocumentStart : InjectAtDocumentEnd); 5973 injectionTime == WebInjectAtDocumentStart ? InjectAtDocumentStart : InjectAtDocumentEnd, 5974 InjectInAllFrames); 5974 5975 5975 5976 return S_OK; … … 5994 5995 5995 5996 pageGroup->addUserStyleSheetToWorld(world->world(), toString(source), toKURL(url), 5996 toStringVector(whitelistCount, whitelist), toStringVector(blacklistCount, blacklist)); 5997 toStringVector(whitelistCount, whitelist), toStringVector(blacklistCount, blacklist), 5998 InjectInAllFrames); 5997 5999 5998 6000 return S_OK; -
trunk/WebKitTools/ChangeLog
r62875 r62876 1 2010-07-08 Aaron Boodman <aa@chromium.org> 2 3 Reviewed by Timothy Hatcher. 4 5 Add the ability for user scripts and user styles to affect just the top frame. 6 7 https://bugs.webkit.org/show_bug.cgi?id=41529 8 9 * DumpRenderTree/LayoutTestController.h: Added new allFrames param. 10 * DumpRenderTree/LayoutTestController.cpp: Ditto. 11 (addUserScriptCallback): 12 (addUserStyleSheetCallback): 13 * DumpRenderTree/chromium/LayoutTestController.cpp: Ditto. 14 (LayoutTestController::addUserScript): 15 (LayoutTestController::addUserStyleSheet): 16 * DumpRenderTree/gtk/LayoutTestControllerGtk.cpp: Ditto. 17 (LayoutTestController::addUserScript): 18 (LayoutTestController::addUserStyleSheet): 19 * DumpRenderTree/mac/LayoutTestControllerMac.mm: Ditto. 20 (LayoutTestController::addUserScript): 21 (LayoutTestController::addUserStyleSheet): 22 * DumpRenderTree/win/LayoutTestControllerWin.cpp: Ditto. 23 (LayoutTestController::addUserScript): 24 (LayoutTestController::addUserStyleSheet): 25 * DumpRenderTree/wx/LayoutTestControllerWx.cpp: Ditto. 26 (LayoutTestController::addUserScript): 27 (LayoutTestController::addUserStyleSheet): 28 1 29 2010-07-08 Adele Peterson <adele@apple.com> 2 30 -
trunk/WebKitTools/DumpRenderTree/LayoutTestController.cpp
r61975 r62876 1500 1500 static JSValueRef addUserScriptCallback(JSContextRef context, JSObjectRef, JSObjectRef thisObject, size_t argumentCount, const JSValueRef arguments[], JSValueRef* exception) 1501 1501 { 1502 if (argumentCount != 2)1502 if (argumentCount != 3) 1503 1503 return JSValueMakeUndefined(context); 1504 1504 … … 1506 1506 ASSERT(!*exception); 1507 1507 bool runAtStart = JSValueToBoolean(context, arguments[1]); 1508 bool allFrames = JSValueToBoolean(context, arguments[2]); 1508 1509 1509 1510 LayoutTestController* controller = static_cast<LayoutTestController*>(JSObjectGetPrivate(thisObject)); 1510 controller->addUserScript(source.get(), runAtStart );1511 controller->addUserScript(source.get(), runAtStart, allFrames); 1511 1512 return JSValueMakeUndefined(context); 1512 1513 } … … 1514 1515 static JSValueRef addUserStyleSheetCallback(JSContextRef context, JSObjectRef, JSObjectRef thisObject, size_t argumentCount, const JSValueRef arguments[], JSValueRef* exception) 1515 1516 { 1516 if (argumentCount != 1)1517 if (argumentCount != 2) 1517 1518 return JSValueMakeUndefined(context); 1518 1519 1519 1520 JSRetainPtr<JSStringRef> source(Adopt, JSValueToStringCopy(context, arguments[0], exception)); 1520 1521 ASSERT(!*exception); 1522 bool allFrames = JSValueToBoolean(context, arguments[1]); 1521 1523 1522 1524 LayoutTestController* controller = static_cast<LayoutTestController*>(JSObjectGetPrivate(thisObject)); 1523 controller->addUserStyleSheet(source.get() );1525 controller->addUserStyleSheet(source.get(), allFrames); 1524 1526 return JSValueMakeUndefined(context); 1525 1527 } -
trunk/WebKitTools/DumpRenderTree/LayoutTestController.h
r61975 r62876 242 242 void removeOriginAccessWhitelistEntry(JSStringRef sourceOrigin, JSStringRef destinationProtocol, JSStringRef destinationHost, bool allowDestinationSubdomains); 243 243 244 void addUserScript(JSStringRef source, bool runAtStart );245 void addUserStyleSheet(JSStringRef source );244 void addUserScript(JSStringRef source, bool runAtStart, bool allFrames); 245 void addUserStyleSheet(JSStringRef source, bool allFrames); 246 246 247 247 void setGeolocationPermission(bool allow); -
trunk/WebKitTools/DumpRenderTree/chromium/LayoutTestController.cpp
r62545 r62876 1274 1274 { 1275 1275 result->setNull(); 1276 if (arguments.size() < 3 || !arguments[0].isString() || !arguments[1].isBool() || !arguments[2].isBool()) 1277 return; 1278 WebView::addUserScript( 1279 cppVariantToWebString(arguments[0]), WebVector<WebString>(), 1280 arguments[1].toBoolean() ? WebView::UserScriptInjectAtDocumentStart : WebView::UserScriptInjectAtDocumentEnd, 1281 arguments[2].toBoolean() ? WebView::UserContentInjectInAllFrames : WebView::UserContentInjectInTopFrameOnly); 1282 } 1283 1284 void LayoutTestController::addUserStyleSheet(const CppArgumentList& arguments, CppVariant* result) 1285 { 1286 result->setNull(); 1276 1287 if (arguments.size() < 2 || !arguments[0].isString() || !arguments[1].isBool()) 1277 1288 return; 1278 m_shell->webView()->addUserScript(cppVariantToWebString(arguments[0]), arguments[1].toBoolean()); 1279 } 1280 1281 void LayoutTestController::addUserStyleSheet(const CppArgumentList& arguments, CppVariant* result) 1282 { 1283 result->setNull(); 1284 if (arguments.size() < 1 || !arguments[0].isString()) 1285 return; 1286 m_shell->webView()->addUserStyleSheet(cppVariantToWebString(arguments[0])); 1289 WebView::addUserStyleSheet( 1290 cppVariantToWebString(arguments[0]), WebVector<WebString>(), 1291 arguments[2].toBoolean() ? WebView::UserContentInjectInAllFrames : WebView::UserContentInjectInTopFrameOnly); 1287 1292 } 1288 1293 -
trunk/WebKitTools/DumpRenderTree/gtk/LayoutTestControllerGtk.cpp
r61975 r62876 625 625 } 626 626 627 void LayoutTestController::addUserScript(JSStringRef source, bool runAtStart )627 void LayoutTestController::addUserScript(JSStringRef source, bool runAtStart, bool allFrames) 628 628 { 629 629 printf("LayoutTestController::addUserScript not implemented.\n"); 630 630 } 631 631 632 void LayoutTestController::addUserStyleSheet(JSStringRef source )632 void LayoutTestController::addUserStyleSheet(JSStringRef source, bool allFrames) 633 633 { 634 634 printf("LayoutTestController::addUserStyleSheet not implemented.\n"); -
trunk/WebKitTools/DumpRenderTree/mac/LayoutTestControllerMac.mm
r61975 r62876 628 628 } 629 629 630 void LayoutTestController::addUserScript(JSStringRef source, bool runAtStart )630 void LayoutTestController::addUserScript(JSStringRef source, bool runAtStart, bool allFrames) 631 631 { 632 632 RetainPtr<CFStringRef> sourceCF(AdoptCF, JSStringCopyCFString(kCFAllocatorDefault, source)); 633 633 NSString *sourceNS = (NSString *)sourceCF.get(); 634 [WebView _addUserScriptToGroup:@"org.webkit.DumpRenderTree" world:[WebScriptWorld world] source:sourceNS url:nil whitelist:nil blacklist:nil injectionTime:(runAtStart ? WebInjectAtDocumentStart : WebInjectAtDocumentEnd) ];635 } 636 637 void LayoutTestController::addUserStyleSheet(JSStringRef source )634 [WebView _addUserScriptToGroup:@"org.webkit.DumpRenderTree" world:[WebScriptWorld world] source:sourceNS url:nil whitelist:nil blacklist:nil injectionTime:(runAtStart ? WebInjectAtDocumentStart : WebInjectAtDocumentEnd) injectedFrames:(allFrames ? WebInjectInAllFrames : WebInjectInTopFrameOnly)]; 635 } 636 637 void LayoutTestController::addUserStyleSheet(JSStringRef source, bool allFrames) 638 638 { 639 639 RetainPtr<CFStringRef> sourceCF(AdoptCF, JSStringCopyCFString(kCFAllocatorDefault, source)); 640 640 NSString *sourceNS = (NSString *)sourceCF.get(); 641 [WebView _addUserStyleSheetToGroup:@"org.webkit.DumpRenderTree" world:[WebScriptWorld world] source:sourceNS url:nil whitelist:nil blacklist:nil ];641 [WebView _addUserStyleSheetToGroup:@"org.webkit.DumpRenderTree" world:[WebScriptWorld world] source:sourceNS url:nil whitelist:nil blacklist:nil injectedFrames:(allFrames ? WebInjectInAllFrames : WebInjectInTopFrameOnly)]; 642 642 } 643 643 -
trunk/WebKitTools/DumpRenderTree/win/LayoutTestControllerWin.cpp
r62400 r62876 1041 1041 } 1042 1042 1043 void LayoutTestController::addUserScript(JSStringRef source, bool runAtStart )1043 void LayoutTestController::addUserScript(JSStringRef source, bool runAtStart, bool allFrames) 1044 1044 { 1045 1045 COMPtr<IWebViewPrivate> webView; … … 1055 1055 1056 1056 1057 void LayoutTestController::addUserStyleSheet(JSStringRef source )1057 void LayoutTestController::addUserStyleSheet(JSStringRef source, bool allFrames) 1058 1058 { 1059 1059 COMPtr<IWebViewPrivate> webView; -
trunk/WebKitTools/DumpRenderTree/wx/LayoutTestControllerWx.cpp
r62695 r62876 328 328 } 329 329 330 void LayoutTestController::addUserScript(JSStringRef source, bool runAtStart )330 void LayoutTestController::addUserScript(JSStringRef source, bool runAtStart, bool allFrames) 331 331 { 332 332 printf("LayoutTestController::addUserScript not implemented.\n"); 333 333 } 334 334 335 void LayoutTestController::addUserStyleSheet(JSStringRef source )335 void LayoutTestController::addUserStyleSheet(JSStringRef source, bool allFrames) 336 336 { 337 337 printf("LayoutTestController::addUserStyleSheet not implemented.\n");
Note: See TracChangeset
for help on using the changeset viewer.