2012-07-23 2 views

Antwort

28

TL; DR Der Webstore kann nicht durch Erweiterungen scripted werden, und die Flagge, die Sie vorher erlaubt das zu tun (--allow-scripting-gallery) has been removed in Chrome 35.

Chrome-Erweiterungen können keine Inhaltsskripts ausführen/CSS im Chrome Web Store einfügen. Dies ist explizit definiert in the source code, bei Funktion IsScriptableURL (klicken Sie auf den vorherigen Link, um die volle Logik zu sehen).

// The gallery is special-cased as a restricted URL for scripting to prevent 
    // access to special JS bindings we expose to the gallery (and avoid things 
    // like extensions removing the "report abuse" link). 
    // TODO(erikkay): This seems like the wrong test. Shouldn't we we testing 
    // against the store app extent? 
    GURL store_url(extension_urls::GetWebstoreLaunchURL()); 
    if (url.host() == store_url.host()) { 
    if (error) 
     *error = manifest_errors::kCannotScriptGallery; 
    return false; 
    } 

manifest_errors::kCannotScriptGallery ist here definiert:

const char kCannotScriptGallery[] = 
    "The extensions gallery cannot be scripted."; 

Der Fehler kann in den Hintergrund Seite der Konsole angezeigt werden, wenn Sie chrome.tabs.executeScript verwenden, um ein Skript in einem Web Store Registerkarte zu injizieren. Zum Beispiel, offen https://chrome.google.com/webstore/, dann führen Sie das folgende Skript im Hintergrund Seite einer Erweiterung (über die Konsole, für die Live-Debugging):

chrome.tabs.query({url:'https://chrome.google.com/webstore/*'}, function(result) { 
    if (result.length) chrome.tabs.executeScript(result[0].id, {code:'alert(0)'}); 
}); 
+0

Ok Inhalt Scripts nicht funktioniert, ist es vielleicht eine Möglichkeit, über Hintergrundseiten? Oder gibt es keine Möglichkeit, das funktioniert (außer über die Befehlszeile Parameter) – chingo

+0

Dies scheint nicht mehr zu funktionieren (in Chrome 31). Ich habe einen Fehler gesendet - https://code.google.com/p/chromium/issues/detail?id=342090 – kzahel

+2

@kzahel Ich habe gerade diesen Fehler behoben. Du solltest die '--allow-scripting-gallery' wieder benutzen können (zumindest mit Canary Builds). –

Verwandte Themen