From 391219fdcdb95fb9fcd2945d7fb08cd6a7c20a64 Mon Sep 17 00:00:00 2001 From: Adam Soos Date: Thu, 2 Apr 2020 16:40:32 +0200 Subject: [PATCH 1/4] Added context menu, fixed missing icon and not opening settings on firefox --- package.json | 8 +++++--- src/js/background.js | 4 ++-- src/js/components/tree/index.jsx | 9 ++++----- src/manifest.chrome.json | 3 +++ src/manifest.firefox.json | 13 +++++++++++-- yarn.lock | 12 +++++++----- 6 files changed, 32 insertions(+), 17 deletions(-) diff --git a/package.json b/package.json index 0039167..6de201b 100755 --- a/package.json +++ b/package.json @@ -36,7 +36,8 @@ "react-treeview": "^0.4.7", "source-map-support": "^0.4.15", "style-loader": "^0.23.1", - "webext-domain-permission-toggle": "^0.1.0", + "webext-domain-permission-toggle": "^1.0.0", + "webext-dynamic-content-scripts": "6.0.3", "webpack": "^4.28.1", "webpack-dev-server": "^3.1.14", "write-file-webpack-plugin": "^4.5.0" @@ -48,13 +49,14 @@ "sanitize-html": "^1.20.0", "snazzy": "^7.0.0", "standard": "^12.0.1", - "webext-dynamic-content-scripts": "^6.0.3", "webstore-upload": "^0.0.8" }, "standard": { "env": [ "jest" ], - "globals": [ "browser" ] + "globals": [ + "browser" + ] } } diff --git a/src/js/background.js b/src/js/background.js index baec6f6..7db20ae 100644 --- a/src/js/background.js +++ b/src/js/background.js @@ -1,4 +1,4 @@ import 'webext-dynamic-content-scripts' -import { addContextMenu } from 'webext-domain-permission-toggle' +import addDomainPermissionToggle from 'webext-domain-permission-toggle' -addContextMenu() +addDomainPermissionToggle() diff --git a/src/js/components/tree/index.jsx b/src/js/components/tree/index.jsx index 826632f..d35d78f 100644 --- a/src/js/components/tree/index.jsx +++ b/src/js/components/tree/index.jsx @@ -127,12 +127,11 @@ class Tree extends React.Component { } onOptions () { - const { runtime } = (window.chrome || browser) - if (runtime.openOptionsPage) { - runtime.openOptionsPage() - } else { - window.open(runtime.getURL('options.html')) + let browserApi = window.chrome + if (typeof browser !== "undefined") { + browserApi = browser } + window.open(browserApi.runtime.getURL('options.html')) } onClose () { diff --git a/src/manifest.chrome.json b/src/manifest.chrome.json index 8b57e82..b85cbb9 100644 --- a/src/manifest.chrome.json +++ b/src/manifest.chrome.json @@ -28,6 +28,9 @@ "css": [] } ], + "browser_action": { + "default_popup": "options.html" + }, "options_page": "options.html", "web_accessible_resources": ["options.html"], "icons": { diff --git a/src/manifest.firefox.json b/src/manifest.firefox.json index 5e8b603..1f0d53a 100644 --- a/src/manifest.firefox.json +++ b/src/manifest.firefox.json @@ -4,6 +4,7 @@ "permissions": [ "contextMenus", "storage", + "activeTab", "*://*.github.com/*" ], "optional_permissions": [ @@ -13,8 +14,7 @@ "background": { "scripts": [ "background.js" - ], - "persistent": false + ] }, "content_scripts": [ { @@ -28,7 +28,16 @@ "css": [] } ], + "browser_action": { + "default_icon": { + "16": "16x16.png", + "48": "48x48.png", + "128": "128x128.png" + }, + "default_popup": "options.html" + }, "options_ui": { + "chrome_style": true, "page": "options.html" }, "web_accessible_resources": ["options.html"], diff --git a/yarn.lock b/yarn.lock index d4cea15..a0a8e54 100644 --- a/yarn.lock +++ b/yarn.lock @@ -8265,12 +8265,14 @@ webext-additional-permissions@^0.1.0: dependencies: "@types/chrome" "0.0.86" -webext-domain-permission-toggle@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/webext-domain-permission-toggle/-/webext-domain-permission-toggle-0.1.0.tgz#82c0f611a075958e5b879fd77f69908236615607" - integrity sha512-zPwVKYa5EiH0htXedmoAWUaMqU7pOr+4dlzFyGVM64Q0jLVo3V8AVcYOVDKtY+c9qOkhtoSUCGcXCnbs5u8eNg== +webext-domain-permission-toggle@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/webext-domain-permission-toggle/-/webext-domain-permission-toggle-1.0.0.tgz#6f9a6d3234ffe596921d1be5ae8823ef5b02ebd2" + integrity sha512-K6RAOYtVCMAmqjQPopMbGOIoxpFU05ERGgaLkUNvFCdpPsXLB5y4m1+Cq1dezyfx6FU0lLEqxoL/5/49+EY5zA== + dependencies: + webext-additional-permissions "^0.1.0" -webext-dynamic-content-scripts@^6.0.3: +webext-dynamic-content-scripts@6.0.3: version "6.0.3" resolved "https://registry.yarnpkg.com/webext-dynamic-content-scripts/-/webext-dynamic-content-scripts-6.0.3.tgz#729a5cf4408dca589af889cb403943ab414c2ecd" integrity sha512-MIH4UOnkUl4hapl83uMQT5t2bbYXTPO/mxhFFBcesm2mGvnG3OrNKNiaPRFL6AdcPvqDVae8UcWcWHSflptLTQ== From 78d116687637296c7d723092250a84be18d7ea94 Mon Sep 17 00:00:00 2001 From: Adam Soos Date: Thu, 2 Apr 2020 18:15:08 +0200 Subject: [PATCH 2/4] Made options page look nice, added firefox add-on store link --- src/js/components/options/index.jsx | 12 +++++++++--- src/pages/options.css | 3 ++- 2 files changed, 11 insertions(+), 4 deletions(-) diff --git a/src/js/components/options/index.jsx b/src/js/components/options/index.jsx index 680410c..3cffb56 100644 --- a/src/js/components/options/index.jsx +++ b/src/js/components/options/index.jsx @@ -2,7 +2,8 @@ import React from 'react' import { StorageSync } from '../../lib' import BodyColor from '../bodyColor' -const url = 'https://chrome.google.com/webstore/detail/github-pull-request-tree/nfhdjopbhlggibjlimhdbogflgmbiahc' +const chromeStoreUrl = 'https://chrome.google.com/webstore/detail/github-pull-request-tree/nfhdjopbhlggibjlimhdbogflgmbiahc' +const firefoxStoreUrl = 'https://addons.mozilla.org/en-US/firefox/addon/better-pull-request-for-github/' class Options extends React.Component { constructor (props) { @@ -20,6 +21,10 @@ class Options extends React.Component { this.setState(await StorageSync.get()) } + isChrome() { + return typeof browser === "undefined" + } + render () { return (
@@ -27,10 +32,11 @@ class Options extends React.Component {

Better Pull Request

- Thanks for using Better Pull Request Chrome Extension! 🎉 + Thanks for using Better Pull Request {this.isChrome() ? "Chrome" : "Firefox"} Extension! 🎉

- If you're enjoying this extension, please rate it on the Chrome Store. + If you're enjoying this extension, please rate it + on the {this.isChrome() ? "Chrome" : "Firefox"} Store.

diff --git a/src/pages/options.css b/src/pages/options.css index 2605011..b11b725 100644 --- a/src/pages/options.css +++ b/src/pages/options.css @@ -4,7 +4,8 @@ body { .container { margin-top: 50px; - width: 500px; + padding: 0 30px 20px 30px; + width: 550px; } .text-center { From b9646f3ab34e112950c45ec9a357ac521d68c9f6 Mon Sep 17 00:00:00 2001 From: Adam Soos Date: Thu, 2 Apr 2020 18:25:47 +0200 Subject: [PATCH 3/4] Fixed accidental tab indentation --- src/manifest.firefox.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/manifest.firefox.json b/src/manifest.firefox.json index 1f0d53a..d3d9eee 100644 --- a/src/manifest.firefox.json +++ b/src/manifest.firefox.json @@ -4,7 +4,7 @@ "permissions": [ "contextMenus", "storage", - "activeTab", + "activeTab", "*://*.github.com/*" ], "optional_permissions": [ From 445fc8e08f1fe7b863b59f8d085b6b80dae1d4f1 Mon Sep 17 00:00:00 2001 From: Adam Soos Date: Thu, 2 Apr 2020 18:28:40 +0200 Subject: [PATCH 4/4] Readded missing this version or higher signs --- package.json | 2 +- yarn.lock | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/package.json b/package.json index 6de201b..0e19439 100755 --- a/package.json +++ b/package.json @@ -37,7 +37,7 @@ "source-map-support": "^0.4.15", "style-loader": "^0.23.1", "webext-domain-permission-toggle": "^1.0.0", - "webext-dynamic-content-scripts": "6.0.3", + "webext-dynamic-content-scripts": "^6.0.3", "webpack": "^4.28.1", "webpack-dev-server": "^3.1.14", "write-file-webpack-plugin": "^4.5.0" diff --git a/yarn.lock b/yarn.lock index a0a8e54..bd78a41 100644 --- a/yarn.lock +++ b/yarn.lock @@ -8272,7 +8272,7 @@ webext-domain-permission-toggle@^1.0.0: dependencies: webext-additional-permissions "^0.1.0" -webext-dynamic-content-scripts@6.0.3: +webext-dynamic-content-scripts@^6.0.3: version "6.0.3" resolved "https://registry.yarnpkg.com/webext-dynamic-content-scripts/-/webext-dynamic-content-scripts-6.0.3.tgz#729a5cf4408dca589af889cb403943ab414c2ecd" integrity sha512-MIH4UOnkUl4hapl83uMQT5t2bbYXTPO/mxhFFBcesm2mGvnG3OrNKNiaPRFL6AdcPvqDVae8UcWcWHSflptLTQ==