Home | History | Annotate | Download | only in service_worker
      1 // Copyright 2014 The Chromium Authors. All rights reserved.
      2 // Use of this source code is governed by a BSD-style license that can be
      3 // found in the LICENSE file.
      4 
      5 #include "content/browser/service_worker/service_worker_utils.h"
      6 
      7 #include <string>
      8 
      9 #include "base/logging.h"
     10 #include "base/strings/string_util.h"
     11 
     12 namespace content {
     13 
     14 // static
     15 bool ServiceWorkerUtils::ScopeMatches(const GURL& scope, const GURL& url) {
     16   DCHECK(!scope.has_ref());
     17   DCHECK(!url.has_ref());
     18   return StartsWithASCII(url.spec(), scope.spec(), true);
     19 }
     20 
     21 bool LongestScopeMatcher::MatchLongest(const GURL& scope) {
     22   if (!ServiceWorkerUtils::ScopeMatches(scope, url_))
     23     return false;
     24   if (match_.is_empty() || match_.spec().size() < scope.spec().size()) {
     25     match_ = scope;
     26     return true;
     27   }
     28   return false;
     29 }
     30 
     31 }  // namespace content
     32