| Index: content/browser/frame_host/navigation_entry_impl.cc
 | 
| diff --git a/content/browser/frame_host/navigation_entry_impl.cc b/content/browser/frame_host/navigation_entry_impl.cc
 | 
| index b450e8ec3ae6cf7ba5397ba32c8053193cd522e2..cc9eb7145fd9c26e11e587c395b71087a12548a5 100644
 | 
| --- a/content/browser/frame_host/navigation_entry_impl.cc
 | 
| +++ b/content/browser/frame_host/navigation_entry_impl.cc
 | 
| @@ -45,12 +45,15 @@ void RecursivelyGenerateFrameEntries(
 | 
|      const ExplodedFrameState& state,
 | 
|      const std::vector<base::NullableString16>& referenced_files,
 | 
|      NavigationEntryImpl::TreeNode* node) {
 | 
| +  GURL renderer_url(state.url_string.string());
 | 
| +  bool is_srcdoc = (renderer_url == GURL(content::kAboutSrcDocURL));
 | 
| +  GURL browser_url = is_srcdoc ? GURL(url::kAboutBlankURL) : renderer_url;
 | 
| +
 | 
|    node->frame_entry = new FrameNavigationEntry(
 | 
|        UTF16ToUTF8(state.target.string()), state.item_sequence_number,
 | 
| -      state.document_sequence_number, nullptr, nullptr,
 | 
| -      GURL(state.url_string.string()),
 | 
| -      Referrer(GURL(state.referrer.string()), state.referrer_policy), "GET",
 | 
| -      -1);
 | 
| +      state.document_sequence_number, nullptr, nullptr, browser_url,
 | 
| +      Referrer(GURL(state.referrer.string()), state.referrer_policy), "GET", -1,
 | 
| +      is_srcdoc);
 | 
|  
 | 
|    // Set a single-frame PageState on the entry.
 | 
|    ExplodedPageState page_state;
 | 
| @@ -260,7 +263,8 @@ NavigationEntryImpl::NavigationEntryImpl(
 | 
|                                                          url,
 | 
|                                                          referrer,
 | 
|                                                          "GET",
 | 
| -                                                        -1))),
 | 
| +                                                        -1,
 | 
| +                                                        false))),
 | 
|        unique_id_(GetUniqueIDInConstructor()),
 | 
|        bindings_(kInvalidBindings),
 | 
|        page_type_(PAGE_TYPE_NORMAL),
 | 
| @@ -798,7 +802,8 @@ void NavigationEntryImpl::AddOrUpdateFrameEntry(
 | 
|      const std::vector<GURL>& redirect_chain,
 | 
|      const PageState& page_state,
 | 
|      const std::string& method,
 | 
| -    int64_t post_id) {
 | 
| +    int64_t post_id,
 | 
| +    bool is_srcdoc) {
 | 
|    // If this is called for the main frame, the FrameNavigationEntry is
 | 
|    // guaranteed to exist, so just update it directly and return.
 | 
|    if (frame_tree_node->IsMainFrame()) {
 | 
| @@ -812,7 +817,7 @@ void NavigationEntryImpl::AddOrUpdateFrameEntry(
 | 
|          frame_tree_node->unique_name(), item_sequence_number,
 | 
|          document_sequence_number, site_instance,
 | 
|          std::move(source_site_instance), url, referrer, redirect_chain,
 | 
| -        page_state, method, post_id);
 | 
| +        page_state, method, post_id, is_srcdoc);
 | 
|      return;
 | 
|    }
 | 
|  
 | 
| @@ -840,7 +845,7 @@ void NavigationEntryImpl::AddOrUpdateFrameEntry(
 | 
|        child->frame_entry->UpdateEntry(
 | 
|            unique_name, item_sequence_number, document_sequence_number,
 | 
|            site_instance, std::move(source_site_instance), url, referrer,
 | 
| -          redirect_chain, page_state, method, post_id);
 | 
| +          redirect_chain, page_state, method, post_id, is_srcdoc);
 | 
|        return;
 | 
|      }
 | 
|    }
 | 
| @@ -851,7 +856,7 @@ void NavigationEntryImpl::AddOrUpdateFrameEntry(
 | 
|    FrameNavigationEntry* frame_entry = new FrameNavigationEntry(
 | 
|        unique_name, item_sequence_number, document_sequence_number,
 | 
|        site_instance, std::move(source_site_instance), url, referrer, method,
 | 
| -      post_id);
 | 
| +      post_id, is_srcdoc);
 | 
|    frame_entry->SetPageState(page_state);
 | 
|    frame_entry->set_redirect_chain(redirect_chain);
 | 
|    parent_node->children.push_back(
 | 
| 
 |