Changeset 62876 in webkit


Ignore:
Timestamp:
Jul 8, 2010 6:15:07 PM (14 years ago)
Author:
aa@chromium.org
Message:

2010-07-08 Aaron Boodman <aa@chromium.org>

Reviewed by Timothy Hatcher.

Add the ability for user scripts and user styles to affect just the top frame.

https://bugs.webkit.org/show_bug.cgi?id=41529

  • platform/win/Skipped: Skipped test because WebKit API needs updating.
  • userscripts/mixed-case-stylesheet.html: Added new allFrames param.
  • userscripts/resources/frame1.html: Added.
  • userscripts/resources/frame2.html: Added.
  • userscripts/script-not-run-for-fragments.html: Added new allFrames param.
  • userscripts/script-run-at-end.html: Ditto.
  • userscripts/script-run-at-start.html: Ditto.
  • userscripts/simple-stylesheet.html: Ditto.
  • userscripts/user-script-all-frames-expected.txt: Added.
  • userscripts/user-script-all-frames.html: Added.
  • userscripts/user-script-top-frame-only-expected.txt: Added.
  • userscripts/user-script-top-frame-only.html: Added.
  • userscripts/user-style-all-frames-expected.txt: Added.
  • userscripts/user-style-all-frames.html: Added.
  • userscripts/user-style-top-frame-only-expected.txt: Added.
  • userscripts/user-style-top-frame-only.html: Added.

2010-07-08 Aaron Boodman <aa@chromium.org>

Reviewed by Timothy Hatcher.

Add the ability for user scripts and user styles to affect just the top frame.

https://bugs.webkit.org/show_bug.cgi?id=41529

Tests: userscripts/user-script-all-frames.html

userscripts/user-script-top-frame-only.html
userscripts/user-style-all-frames.html
userscripts/user-style-top-frame-only.html

  • WebCore.base.exp: Update PageGroup method signatures.
  • dom/Document.cpp: (WebCore::Document::pageGroupUserSheets): Check allFrames before injecting.
  • page/Frame.cpp: (WebCore::Frame::injectUserScriptsForWorld): Ditto.
  • page/PageGroup.cpp: (WebCore::PageGroup::addUserScriptToWorld): (WebCore::PageGroup::addUserStyleSheetToWorld):
  • page/PageGroup.h:
  • page/UserScript.h: (WebCore::UserScript::UserScript): (WebCore::UserScript::injectedFrames):
  • page/UserScriptTypes.h: (WebCore::):
  • page/UserStyleSheet.h: (WebCore::UserStyleSheet::UserStyleSheet): (WebCore::UserStyleSheet::injectedFrames):

2010-07-08 Aaron Boodman <aa@chromium.org>

Reviewed by Timothy Hatcher.

Add the ability for user scripts and user styles to affect just the top frame.

https://bugs.webkit.org/show_bug.cgi?id=41529

  • public/WebView.h: (WebKit::WebView::): (WebKit::WebView::addUserScript): (WebKit::WebView::addUserStyleSheet):
  • src/AssertMatchingEnums.cpp:
  • src/WebViewImpl.cpp: (WebKit::WebView::addUserScript): (WebKit::WebView::addUserStyleSheet):

2010-07-08 Aaron Boodman <aa@chromium.org>

Reviewed by Timothy Hatcher.

Add the ability for user scripts and user styles to affect just the top frame.

https://bugs.webkit.org/show_bug.cgi?id=41529

  • WebView/WebView.mm: (+[WebView _addUserScriptToGroup:world:source:url:whitelist:blacklist:injectionTime:]): (+[WebView _addUserScriptToGroup:world:source:url:whitelist:blacklist:injectionTime:injectedFrames:]): (+[WebView _addUserStyleSheetToGroup:world:source:url:whitelist:blacklist:]): (+[WebView _addUserStyleSheetToGroup:world:source:url:whitelist:blacklist:injectedFrames:]):
  • WebView/WebViewPrivate.h:

2010-07-08 Aaron Boodman <aa@chromium.org>

Reviewed by Timothy Hatcher.

Add the ability for user scripts and user styles to affect just the top frame.

https://bugs.webkit.org/show_bug.cgi?id=41529

  • WebView.cpp: (WebView::addUserScriptToGroup): (WebView::addUserStyleSheetToGroup):

2010-07-08 Aaron Boodman <aa@chromium.org>

Reviewed by Timothy Hatcher.

Add the ability for user scripts and user styles to affect just the top frame.

https://bugs.webkit.org/show_bug.cgi?id=41529

  • DumpRenderTree/LayoutTestController.h: Added new allFrames param.
  • DumpRenderTree/LayoutTestController.cpp: Ditto. (addUserScriptCallback): (addUserStyleSheetCallback):
  • DumpRenderTree/chromium/LayoutTestController.cpp: Ditto. (LayoutTestController::addUserScript): (LayoutTestController::addUserStyleSheet):
  • DumpRenderTree/gtk/LayoutTestControllerGtk.cpp: Ditto. (LayoutTestController::addUserScript): (LayoutTestController::addUserStyleSheet):
  • DumpRenderTree/mac/LayoutTestControllerMac.mm: Ditto. (LayoutTestController::addUserScript): (LayoutTestController::addUserStyleSheet):
  • DumpRenderTree/win/LayoutTestControllerWin.cpp: Ditto. (LayoutTestController::addUserScript): (LayoutTestController::addUserStyleSheet):
  • DumpRenderTree/wx/LayoutTestControllerWx.cpp: Ditto. (LayoutTestController::addUserScript): (LayoutTestController::addUserStyleSheet):
Location:
trunk
Files:
10 added
35 edited
1 copied

Legend:

Unmodified
Added
Removed
  • trunk/LayoutTests/ChangeLog

    r62875 r62876  
     12010-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
    1262010-07-08  Adele Peterson  <adele@apple.com>
    227
  • trunk/LayoutTests/platform/win/Skipped

    r62653 r62876  
    945945fast/images/large-size-image-crash.html
    946946
     947# Disable until the windows WebKit API supports injecting in the top frame only.
     948# https://bugs.webkit.org/show_bug.cgi?id=41800
     949userscripts/user-script-all-frames.html
     950userscripts/user-script-top-frame-only.html
     951userscripts/user-style-all-frames.html
     952userscripts/user-style-top-frame-only.html
     953userscripts/frameset-all-frames.html
     954userscripts/frameset-top-frame-only.html
  • trunk/LayoutTests/userscripts/mixed-case-stylesheet.html

    r54005 r62876  
    44if (window.layoutTestController) {
    55    window.layoutTestController.dumpAsText();
    6     window.layoutTestController.addUserStyleSheet("#mixedCase { display: none }");
     6    window.layoutTestController.addUserStyleSheet("#mixedCase { display: none }", true);
    77}
    88</script>
  • trunk/LayoutTests/userscripts/script-not-run-for-fragments.html

    r53917 r62876  
    66    layoutTestController.dumpAsText();
    77    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);
    99}
    1010</script>
  • trunk/LayoutTests/userscripts/script-run-at-end.html

    r48057 r62876  
    55if (window.layoutTestController) {
    66    layoutTestController.dumpAsText();
    7     layoutTestController.addUserScript("document.getElementById('target').innerHTML = 'PASS'", false);
     7    layoutTestController.addUserScript("document.getElementById('target').innerHTML = 'PASS'", false, true);
    88}
    99</script>
  • trunk/LayoutTests/userscripts/script-run-at-start.html

    r53917 r62876  
    55if (window.layoutTestController) {
    66    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);
    88}
    99</script>
  • trunk/LayoutTests/userscripts/simple-stylesheet.html

    r48222 r62876  
    55if (window.layoutTestController) {
    66    layoutTestController.dumpAsText();
    7     layoutTestController.addUserStyleSheet("div { width:0; }");
     7    layoutTestController.addUserStyleSheet("div { width:0; }", true);
    88}
    99</script>
  • trunk/WebCore/ChangeLog

    r62875 r62876  
     12010-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
    1322010-07-08  Adele Peterson  <adele@apple.com>
    233
  • trunk/WebCore/GNUmakefile.am

    r62792 r62876  
    16011601        WebCore/page/UserContentURLPattern.cpp \
    16021602        WebCore/page/UserContentURLPattern.h \
     1603        WebCore/page/UserContentTypes.h \
    16031604        WebCore/page/UserScript.h \
    16041605        WebCore/page/UserScriptTypes.h \
  • trunk/WebCore/WebCore.exp.in

    r62816 r62876  
    751751__ZN7WebCore9PageGroup14addVisitedLinkEPKtm
    752752__ZN7WebCore9PageGroup17closeLocalStorageEv
    753 __ZN7WebCore9PageGroup20addUserScriptToWorldEPNS_15DOMWrapperWorldERKNS_6StringERKNS_4KURLEN3WTF10PassOwnPtrINS9_6VectorIS3_Lm0EEEEESD_NS_23UserScriptInjectionTimeE
     753__ZN7WebCore9PageGroup20addUserScriptToWorldEPNS_15DOMWrapperWorldERKNS_6StringERKNS_4KURLEN3WTF10PassOwnPtrINS9_6VectorIS3_Lm0EEEEESD_NS_23UserScriptInjectionTimeENS_25UserContentInjectedFramesE
    754754__ZN7WebCore9PageGroup20removeAllUserContentEv
    755755__ZN7WebCore9PageGroup21removeAllVisitedLinksEv
    756 __ZN7WebCore9PageGroup24addUserStyleSheetToWorldEPNS_15DOMWrapperWorldERKNS_6StringERKNS_4KURLEN3WTF10PassOwnPtrINS9_6VectorIS3_Lm0EEEEESD_
     756__ZN7WebCore9PageGroup24addUserStyleSheetToWorldEPNS_15DOMWrapperWorldERKNS_6StringERKNS_4KURLEN3WTF10PassOwnPtrINS9_6VectorIS3_Lm0EEEEESD_NS_25UserContentInjectedFramesE
    757757__ZN7WebCore9PageGroup25removeUserScriptFromWorldEPNS_15DOMWrapperWorldERKNS_4KURLE
    758758__ZN7WebCore9PageGroup26removeUserScriptsFromWorldEPNS_15DOMWrapperWorldE
  • trunk/WebCore/WebCore.gypi

    r62792 r62876  
    20372037            'page/UserContentURLPattern.cpp',
    20382038            'page/UserContentURLPattern.h',
     2039            'page/UserContentTypes.h',
    20392040            'page/UserScript.h',
    20402041            'page/UserScriptTypes.h',
  • trunk/WebCore/WebCore.xcodeproj/project.pbxproj

    r62792 r62876  
    3636                0014628A103CD1DE000B20DB /* OriginAccessEntry.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 00146288103CD1DE000B20DB /* OriginAccessEntry.cpp */; };
    3737                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, ); }; };
    3839                06027CAD0B1CBFC000884B2D /* ContextMenuItem.h in Headers */ = {isa = PBXBuildFile; fileRef = 06027CAC0B1CBFC000884B2D /* ContextMenuItem.h */; settings = {ATTRIBUTES = (Private, ); }; };
    3940                06027CB30B1CC03D00884B2D /* ContextMenuItemMac.mm in Sources */ = {isa = PBXBuildFile; fileRef = 06027CB20B1CC03D00884B2D /* ContextMenuItemMac.mm */; };
     
    56505651                00146288103CD1DE000B20DB /* OriginAccessEntry.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = OriginAccessEntry.cpp; sourceTree = "<group>"; };
    56515652                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>"; };
    56525654                06027CAC0B1CBFC000884B2D /* ContextMenuItem.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = ContextMenuItem.h; sourceTree = "<group>"; };
    56535655                06027CB20B1CC03D00884B2D /* ContextMenuItemMac.mm */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.objcpp; path = ContextMenuItemMac.mm; sourceTree = "<group>"; };
     
    1230912311                                8AF4E55911DC5A63000ED3DE /* Timing.h */,
    1231012312                                8AF4E55A11DC5A63000ED3DE /* Timing.idl */,
     12313                                003F1FE911E6AB43008258D9 /* UserContentTypes.h */,
    1231112314                                BCACF3BA1072921A00C0C8A3 /* UserContentURLPattern.cpp */,
    1231212315                                BCACF3BB1072921A00C0C8A3 /* UserContentURLPattern.h */,
     
    1972919732                                BCA8C83111E3D53200812FB7 /* BackForwardControllerClient.h in Headers */,
    1973019733                                BCA8CA6011E4E6D100812FB7 /* BackForwardListImpl.h in Headers */,
     19734                                003F1FEA11E6AB43008258D9 /* UserContentTypes.h in Headers */,
    1973119735                        );
    1973219736                        runOnlyForDeploymentPostprocessing = 0;
  • trunk/WebCore/dom/Document.cpp

    r62693 r62876  
    21552155        for (unsigned i = 0; i < sheets->size(); ++i) {
    21562156            const UserStyleSheet* sheet = sheets->at(i).get();
     2157            if (sheet->injectedFrames() == InjectInTopFrameOnly && ownerElement())
     2158                continue;
    21572159            if (!UserContentURLPattern::matchesPatterns(url(), sheet->whitelist(), sheet->blacklist()))
    21582160                continue;
  • trunk/WebCore/page/Frame.cpp

    r62468 r62876  
    692692    for (unsigned i = 0; i < count; ++i) {
    693693        UserScript* script = userScripts[i].get();
     694        if (script->injectedFrames() == InjectInTopFrameOnly && ownerElement())
     695            continue;
     696
    694697        if (script->injectionTime() == injectionTime && UserContentURLPattern::matchesPatterns(doc->url(), script->whitelist(), script->blacklist()))
    695698            m_script.evaluateInWorld(ScriptSourceCode(script->source(), script->url()), world);
  • trunk/WebCore/page/PageGroup.cpp

    r56777 r62876  
    214214#endif
    215215
    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));
     216void 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));
    222223    if (!m_userScripts)
    223224        m_userScripts.set(new UserScriptMap);
     
    228229}
    229230
    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));
     231void 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));
    236238    if (!m_userStyleSheets)
    237239        m_userStyleSheets.set(new UserStyleSheetMap);
     
    240242        styleSheetsInWorld = new UserStyleSheetVector;
    241243    styleSheetsInWorld->append(userStyleSheet.release());
    242    
     244
    243245    // Clear our cached sheets and have them just reparse.
    244246    HashSet<Page*>::const_iterator end = m_pages.end();
  • trunk/WebCore/page/PageGroup.h

    r59034 r62876  
    7575#endif
    7676
    77         void addUserScriptToWorld(DOMWrapperWorld*, const String& source, const KURL&, 
     77        void addUserScriptToWorld(DOMWrapperWorld*, const String& source, const KURL&,
    7878                                  PassOwnPtr<Vector<String> > whitelist, PassOwnPtr<Vector<String> > blacklist,
    79                                   UserScriptInjectionTime);
     79                                  UserScriptInjectionTime, UserContentInjectedFrames);
    8080        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
    8384        void removeUserScriptFromWorld(DOMWrapperWorld*, const KURL&);
    8485        void removeUserStyleSheetFromWorld(DOMWrapperWorld*, const KURL&);
    85        
     86
    8687        void removeUserScriptsFromWorld(DOMWrapperWorld*);
    8788        void removeUserStyleSheetsFromWorld(DOMWrapperWorld*);
    88    
     89
    8990        void removeAllUserContent();
    90        
     91
    9192        const UserScriptMap* userScripts() const { return m_userScripts.get(); }
    9293        const UserStyleSheetMap* userStyleSheets() const { return m_userStyleSheets.get(); }
  • trunk/WebCore/page/UserContentTypes.h

    r62875 r62876  
    2424 */
    2525 
    26 #ifndef UserStyleSheet_h
    27 #define UserStyleSheet_h
     26#ifndef UserContentTypes_h
     27#define UserContentTypes_h
    2828
    29 #include "KURL.h"
    30 #include "UserStyleSheetTypes.h"
    31 #include <wtf/OwnPtr.h>
    32 #include <wtf/PassOwnPtr.h>
     29#include <wtf/HashMap.h>
    3330#include <wtf/Vector.h>
    3431
    3532namespace WebCore {
    3633
    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 };
     34enum UserContentInjectedFrames { InjectInAllFrames, InjectInTopFrameOnly };
    5935
    6036} // namespace WebCore
    6137 
    62 #endif // UserStyleSheet_h
     38#endif // UserContentTypes_h
  • trunk/WebCore/page/UserScript.h

    r50907 r62876  
    2828
    2929#include "KURL.h"
     30#include "UserContentTypes.h"
    3031#include "UserScriptTypes.h"
    3132#include <wtf/OwnPtr.h>
     
    3940    UserScript(const String& source, const KURL& url,
    4041               PassOwnPtr<Vector<String> > whitelist, PassOwnPtr<Vector<String> > blacklist,
    41                UserScriptInjectionTime injectionTime)
     42               UserScriptInjectionTime injectionTime, UserContentInjectedFrames injectedFrames)
    4243        : m_source(source)
    4344        , m_url(url)
     
    4546        , m_blacklist(blacklist)
    4647        , m_injectionTime(injectionTime)
     48        , m_injectedFrames(injectedFrames)
    4749    {
    4850    }
     
    5355    const Vector<String>* blacklist() const { return m_blacklist.get(); }
    5456    UserScriptInjectionTime injectionTime() const { return m_injectionTime; }
    55    
     57    UserContentInjectedFrames injectedFrames() const { return m_injectedFrames; }
     58
    5659private:
    5760    String m_source;
     
    6063    OwnPtr<Vector<String> > m_blacklist;
    6164    UserScriptInjectionTime m_injectionTime;
     65    UserContentInjectedFrames m_injectedFrames;
    6266};
    6367
    6468} // namespace WebCore
    65  
     69
    6670#endif // UserScript_h
  • trunk/WebCore/page/UserStyleSheet.h

    r50907 r62876  
    2828
    2929#include "KURL.h"
     30#include "UserContentTypes.h"
    3031#include "UserStyleSheetTypes.h"
    3132#include <wtf/OwnPtr.h>
     
    3839public:
    3940    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)
    4143        : m_source(source)
    4244        , m_url(url)
    4345        , m_whitelist(whitelist)
    4446        , m_blacklist(blacklist)
     47        , m_injectedFrames(injectedFrames)
    4548    {
    4649    }
     
    5053    const Vector<String>* whitelist() const { return m_whitelist.get(); }
    5154    const Vector<String>* blacklist() const { return m_blacklist.get(); }
     55    UserContentInjectedFrames injectedFrames() const { return m_injectedFrames; }
    5256
    5357private:
     
    5660    OwnPtr<Vector<String> > m_whitelist;
    5761    OwnPtr<Vector<String> > m_blacklist;
     62    UserContentInjectedFrames m_injectedFrames;
    5863};
    5964
  • trunk/WebKit/chromium/ChangeLog

    r62874 r62876  
     12010-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
    1182010-07-08  James Robinson  <jamesr@google.com>
    219
  • trunk/WebKit/chromium/public/WebView.h

    r62272 r62876  
    5555class WebView : public WebWidget {
    5656public:
     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
    5769    // Initialization ------------------------------------------------------
    5870
     
    287299    virtual void addUserScript(const WebString& sourceCode, bool runAtStart)
    288300    {
    289         addUserScript(sourceCode, WebVector<WebString>(), runAtStart);
     301        addUserScript(sourceCode, WebVector<WebString>(),
     302                      runAtStart ? UserScriptInjectAtDocumentStart : UserScriptInjectAtDocumentEnd,
     303                      UserContentInjectInAllFrames);
    290304    }
    291305    virtual void addUserStyleSheet(const WebString& sourceCode)
    292306    {
    293         addUserStyleSheet(sourceCode, WebVector<WebString>());
     307        addUserStyleSheet(sourceCode, WebVector<WebString>(), UserContentInjectInAllFrames);
    294308    }
    295309
    296310    WEBKIT_API static void addUserScript(const WebString& sourceCode,
    297311                                         const WebVector<WebString>& patterns,
    298                                          bool runAtStart);
     312                                         UserScriptInjectAt injectAt,
     313                                         UserContentInjectIn injectIn);
    299314    WEBKIT_API static void addUserStyleSheet(const WebString& sourceCode,
    300                                              const WebVector<WebString>& patterns);
     315                                             const WebVector<WebString>& patterns,
     316                                             UserContentInjectIn injectIn);
    301317    WEBKIT_API static void removeAllUserContent();
    302318
  • trunk/WebKit/chromium/src/AssertMatchingEnums.cpp

    r61898 r62876  
    4545#include "StringImpl.h"
    4646#include "TextAffinity.h"
     47#include "UserContentTypes.h"
     48#include "UserScriptTypes.h"
    4749#include "WebAccessibilityObject.h"
    4850#include "WebApplicationCacheHost.h"
     
    5759#include "WebTextAffinity.h"
    5860#include "WebTextCaseSensitivity.h"
     61#include "WebView.h"
    5962#include <wtf/Assertions.h>
    6063
     
    313316COMPILE_ASSERT_MATCHING_ENUM(WebTextCaseSensitive, TextCaseSensitive);
    314317COMPILE_ASSERT_MATCHING_ENUM(WebTextCaseInsensitive, TextCaseInsensitive);
     318
     319COMPILE_ASSERT_MATCHING_ENUM(WebView::UserScriptInjectAtDocumentStart, InjectAtDocumentStart);
     320COMPILE_ASSERT_MATCHING_ENUM(WebView::UserScriptInjectAtDocumentEnd, InjectAtDocumentEnd);
     321COMPILE_ASSERT_MATCHING_ENUM(WebView::UserContentInjectInAllFrames, InjectInAllFrames);
     322COMPILE_ASSERT_MATCHING_ENUM(WebView::UserContentInjectInTopFrameOnly, InjectInTopFrameOnly);
  • trunk/WebKit/chromium/src/WebViewImpl.cpp

    r62791 r62876  
    18711871}
    18721872
    1873 void WebView::addUserScript(const WebString& sourceCode, const WebVector<WebString>& patternsIn, bool runAtStart)
     1873void WebView::addUserScript(const WebString& sourceCode,
     1874                            const WebVector<WebString>& patternsIn,
     1875                            WebView::UserScriptInjectAt injectAt,
     1876                            WebView::UserContentInjectIn injectIn)
    18741877{
    18751878    OwnPtr<Vector<String> > patterns(new Vector<String>);
     
    18801883    RefPtr<DOMWrapperWorld> world(DOMWrapperWorld::create());
    18811884    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
     1889void WebView::addUserStyleSheet(const WebString& sourceCode,
     1890                                const WebVector<WebString>& patternsIn,
     1891                                WebView::UserContentInjectIn injectIn)
    18861892{
    18871893    OwnPtr<Vector<String> > patterns(new Vector<String>);
     
    18911897    PageGroup* pageGroup = PageGroup::pageGroup(pageGroupName);
    18921898    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));
    18941901}
    18951902
  • trunk/WebKit/mac/ChangeLog

    r62875 r62876  
     12010-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
    1162010-07-08  Adele Peterson  <adele@apple.com>
    217
  • trunk/WebKit/mac/WebView/WebView.mm

    r62676 r62876  
    23632363
    23642364+ (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
    23662375{
    23672376    String group(groupName);
     
    23742383   
    23752384    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);
    23772387}
    23782388
     
    23802390                        whitelist:(NSArray *)whitelist blacklist:(NSArray *)blacklist
    23812391{
     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{
    23822399    String group(groupName);
    23832400    if (group.isEmpty())
     
    23882405        return;
    23892406
    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);
    23912408}
    23922409
  • trunk/WebKit/mac/WebView/WebViewPrivate.h

    r59418 r62876  
    8989} WebUserScriptInjectionTime;
    9090
     91typedef enum {
     92    WebInjectInAllFrames,
     93    WebInjectInTopFrameOnly
     94} WebUserContentInjectedFrames;
     95
    9196@interface WebController : NSTreeController {
    9297    IBOutlet WebView *webView;
     
    505510+ (void)_resetOriginAccessWhitelists;
    506511
     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.
    507513+ (void)_addUserScriptToGroup:(NSString *)groupName world:(WebScriptWorld *)world source:(NSString *)source url:(NSURL *)url whitelist:(NSArray *)whitelist blacklist:(NSArray *)blacklist injectionTime:(WebUserScriptInjectionTime)injectionTime;
    508514+ (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;
    509518+ (void)_removeUserScriptFromGroup:(NSString *)groupName world:(WebScriptWorld *)world url:(NSURL *)url;
    510519+ (void)_removeUserStyleSheetFromGroup:(NSString *)groupName world:(WebScriptWorld *)world url:(NSURL *)url;
  • trunk/WebKit/win/ChangeLog

    r62875 r62876  
     12010-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
    1132010-07-08  Adele Peterson  <adele@apple.com>
    214
  • trunk/WebKit/win/WebView.cpp

    r62676 r62876  
    59715971    pageGroup->addUserScriptToWorld(world->world(), toString(source), toKURL(url),
    59725972                                    toStringVector(whitelistCount, whitelist), toStringVector(blacklistCount, blacklist),
    5973                                     injectionTime == WebInjectAtDocumentStart ? InjectAtDocumentStart : InjectAtDocumentEnd);
     5973                                    injectionTime == WebInjectAtDocumentStart ? InjectAtDocumentStart : InjectAtDocumentEnd,
     5974                                    InjectInAllFrames);
    59745975
    59755976    return S_OK;
     
    59945995
    59955996    pageGroup->addUserStyleSheetToWorld(world->world(), toString(source), toKURL(url),
    5996                                         toStringVector(whitelistCount, whitelist), toStringVector(blacklistCount, blacklist));
     5997                                        toStringVector(whitelistCount, whitelist), toStringVector(blacklistCount, blacklist),
     5998                                        InjectInAllFrames);
    59975999
    59986000    return S_OK;
  • trunk/WebKitTools/ChangeLog

    r62875 r62876  
     12010-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
    1292010-07-08  Adele Peterson  <adele@apple.com>
    230
  • trunk/WebKitTools/DumpRenderTree/LayoutTestController.cpp

    r61975 r62876  
    15001500static JSValueRef addUserScriptCallback(JSContextRef context, JSObjectRef, JSObjectRef thisObject, size_t argumentCount, const JSValueRef arguments[], JSValueRef* exception)
    15011501{
    1502     if (argumentCount != 2)
     1502    if (argumentCount != 3)
    15031503        return JSValueMakeUndefined(context);
    15041504   
     
    15061506    ASSERT(!*exception);
    15071507    bool runAtStart = JSValueToBoolean(context, arguments[1]);
     1508    bool allFrames = JSValueToBoolean(context, arguments[2]);
    15081509   
    15091510    LayoutTestController* controller = static_cast<LayoutTestController*>(JSObjectGetPrivate(thisObject));
    1510     controller->addUserScript(source.get(), runAtStart);
     1511    controller->addUserScript(source.get(), runAtStart, allFrames);
    15111512    return JSValueMakeUndefined(context);
    15121513}
     
    15141515static JSValueRef addUserStyleSheetCallback(JSContextRef context, JSObjectRef, JSObjectRef thisObject, size_t argumentCount, const JSValueRef arguments[], JSValueRef* exception)
    15151516{
    1516     if (argumentCount != 1)
     1517    if (argumentCount != 2)
    15171518        return JSValueMakeUndefined(context);
    15181519   
    15191520    JSRetainPtr<JSStringRef> source(Adopt, JSValueToStringCopy(context, arguments[0], exception));
    15201521    ASSERT(!*exception);
     1522    bool allFrames = JSValueToBoolean(context, arguments[1]);
    15211523   
    15221524    LayoutTestController* controller = static_cast<LayoutTestController*>(JSObjectGetPrivate(thisObject));
    1523     controller->addUserStyleSheet(source.get());
     1525    controller->addUserStyleSheet(source.get(), allFrames);
    15241526    return JSValueMakeUndefined(context);
    15251527}
  • trunk/WebKitTools/DumpRenderTree/LayoutTestController.h

    r61975 r62876  
    242242    void removeOriginAccessWhitelistEntry(JSStringRef sourceOrigin, JSStringRef destinationProtocol, JSStringRef destinationHost, bool allowDestinationSubdomains);
    243243
    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);
    246246
    247247    void setGeolocationPermission(bool allow);
  • trunk/WebKitTools/DumpRenderTree/chromium/LayoutTestController.cpp

    r62545 r62876  
    12741274{
    12751275    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
     1284void LayoutTestController::addUserStyleSheet(const CppArgumentList& arguments, CppVariant* result)
     1285{
     1286    result->setNull();
    12761287    if (arguments.size() < 2 || !arguments[0].isString() || !arguments[1].isBool())
    12771288        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);
    12871292}
    12881293
  • trunk/WebKitTools/DumpRenderTree/gtk/LayoutTestControllerGtk.cpp

    r61975 r62876  
    625625}
    626626
    627 void LayoutTestController::addUserScript(JSStringRef source, bool runAtStart)
     627void LayoutTestController::addUserScript(JSStringRef source, bool runAtStart, bool allFrames)
    628628{
    629629    printf("LayoutTestController::addUserScript not implemented.\n");
    630630}
    631631
    632 void LayoutTestController::addUserStyleSheet(JSStringRef source)
     632void LayoutTestController::addUserStyleSheet(JSStringRef source, bool allFrames)
    633633{
    634634    printf("LayoutTestController::addUserStyleSheet not implemented.\n");
  • trunk/WebKitTools/DumpRenderTree/mac/LayoutTestControllerMac.mm

    r61975 r62876  
    628628}
    629629
    630 void LayoutTestController::addUserScript(JSStringRef source, bool runAtStart)
     630void LayoutTestController::addUserScript(JSStringRef source, bool runAtStart, bool allFrames)
    631631{
    632632    RetainPtr<CFStringRef> sourceCF(AdoptCF, JSStringCopyCFString(kCFAllocatorDefault, source));
    633633    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
     637void LayoutTestController::addUserStyleSheet(JSStringRef source, bool allFrames)
    638638{
    639639    RetainPtr<CFStringRef> sourceCF(AdoptCF, JSStringCopyCFString(kCFAllocatorDefault, source));
    640640    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)];
    642642}
    643643
  • trunk/WebKitTools/DumpRenderTree/win/LayoutTestControllerWin.cpp

    r62400 r62876  
    10411041}
    10421042
    1043 void LayoutTestController::addUserScript(JSStringRef source, bool runAtStart)
     1043void LayoutTestController::addUserScript(JSStringRef source, bool runAtStart, bool allFrames)
    10441044{
    10451045    COMPtr<IWebViewPrivate> webView;
     
    10551055
    10561056
    1057 void LayoutTestController::addUserStyleSheet(JSStringRef source)
     1057void LayoutTestController::addUserStyleSheet(JSStringRef source, bool allFrames)
    10581058{
    10591059    COMPtr<IWebViewPrivate> webView;
  • trunk/WebKitTools/DumpRenderTree/wx/LayoutTestControllerWx.cpp

    r62695 r62876  
    328328}
    329329
    330 void LayoutTestController::addUserScript(JSStringRef source, bool runAtStart)
     330void LayoutTestController::addUserScript(JSStringRef source, bool runAtStart, bool allFrames)
    331331{
    332332    printf("LayoutTestController::addUserScript not implemented.\n");
    333333}
    334334
    335 void LayoutTestController::addUserStyleSheet(JSStringRef source)
     335void LayoutTestController::addUserStyleSheet(JSStringRef source, bool allFrames)
    336336{
    337337    printf("LayoutTestController::addUserStyleSheet not implemented.\n");
Note: See TracChangeset for help on using the changeset viewer.