[issues] Add IssueManager abstraction

This CL adds a central singleton that collects all issues from all
known targers. This singleton is then used by the issues view to
display issues.

This change enables correct handling of issues that arise from OOPIF
and worker sources.

Fixed: chromium:1073797
Change-Id: I75a8bb46d240f63df013c0b06506cad7fb2e5a8f
Reviewed-on: https://chromium-review.googlesource.com/c/devtools/devtools-frontend/+/2168885
Commit-Queue: Sigurd Schneider <[email protected]>
Reviewed-by: Simon Zünd <[email protected]>
diff --git a/front_end/network/RequestHeadersView.js b/front_end/network/RequestHeadersView.js
index 98ba104..3d139bc 100644
--- a/front_end/network/RequestHeadersView.js
+++ b/front_end/network/RequestHeadersView.js
@@ -28,6 +28,7 @@
  * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
+import * as BrowserSDK from '../browser_sdk/browser_sdk.js';
 import * as Common from '../common/common.js';
 import * as ObjectUI from '../object_ui/object_ui.js';
 import * as SDK from '../sdk/sdk.js';
@@ -161,10 +162,11 @@
       }
 
       if (Root.Runtime.experiments.isEnabled('issuesPane') &&
-          SDK.RelatedIssue.hasIssueOfCategory(this._request, SDK.Issue.IssueCategory.CrossOriginEmbedderPolicy)) {
+          BrowserSDK.RelatedIssue.hasIssueOfCategory(
+              this._request, SDK.Issue.IssueCategory.CrossOriginEmbedderPolicy)) {
         const link = createElementWithClass('div', 'devtools-link');
         link.onclick = () => {
-          SDK.RelatedIssue.reveal(this._request, SDK.Issue.IssueCategory.CrossOriginEmbedderPolicy);
+          BrowserSDK.RelatedIssue.reveal(this._request, SDK.Issue.IssueCategory.CrossOriginEmbedderPolicy);
         };
         const text = createElementWithClass('span', 'devtools-link');
         text.textContent = 'Learn more in the issues panel';